使用Java将Jenkins Pipeline解析为JSON(获取两个大括号之间的所有字符串/文本)

发布时间:2020-07-06 06:09

我需要解析Jenkins管道脚本并使用JAVA转换为JSON

输入:

pipeline{
    agent any
    stages{
       stage('stage-1'){
           steps{
                script {
                  echo 'hello stage1 world'
                }
            }
        }
        stage('stage-2'){
             steps{
                script {
                  echo 'hello stage2 world'
                }
            }
         }
    }
}```

**Output required**
 "pipeline": {
      "stages": [
        {
          "id": "stage1,
          "steps": [
            {
            "type": "script",
              "value" :"hello stage1 world"
            }
          ]
        },
         {
          "id": "stage2,
          "steps": [
            {
            "type": "script",
            "value" :"hello stage2 world"
            }
          ]
        }
    ]
}

我正在使用的方法/方法:我认为将使用正则表达式功能来获取两个花括号之间的所有内容并对其进行解析。但是我是regex的新手,请您指导我正确的方法

回答1

JSON对象将具有“ {”开始标签和结束“}”标签。 为了达到此要求,最好根据您的JSON结构设计一个自定义解析器。

但是,如果您需要创建JSON格式的jenkins作业文件,则可以引用基于python的模块“ jenkins作业生成器”

https://docs.openstack.org/infra/jenkins-job-builder/

此模块可帮助您以JSON格式定义jenkins作业。