如何在jenkins管道作业中获得pom版本

如何在jenkins管道作业中获得pom版本,jenkins,groovy,pom.xml,jenkins-pipeline,Jenkins,Groovy,Pom.xml,Jenkins Pipeline,我想在我的一个阶段中获得pom版本。为此,我有一个管道脚本。我已安装管道实用程序步骤插件 stage ('Publish Stage') { steps { pom = readMavenPom file: 'pom.xml' echo pom.version } } 我犯了一个错误,有人能告诉我我犯了什么错误吗?您不能在这样的声明性管道中为groovy变量赋值。

我想在我的一个阶段中获得pom版本。为此,我有一个管道脚本。我已安装管道实用程序步骤插件

stage ('Publish Stage') {
            steps {
                 pom = readMavenPom file: 'pom.xml'
                 echo pom.version
            }
        }

我犯了一个错误,有人能告诉我我犯了什么错误吗?

您不能在这样的声明性管道中为groovy变量赋值。只能运行
步骤{}
块中的步骤。如果将其包装在
脚本{}
块中,它将工作。如果需要在其他地方使用该变量,请注意不要在本地声明该变量

您不能在这样的声明性管道中分配给groovy变量。只能运行
步骤{}
块中的步骤。如果将其包装在
脚本{}
块中,它将工作。如果需要在其他地方使用该变量,请注意不要在本地声明该变量

编写步骤{}块并将其包装到脚本{}中会起作用,但在我的例子中,我只是通过环境使用变量

   stage('Read Pom Version'){
       pom = readMavenPom file: 'pom.xml'
       env.POM_VERSION = pom.version

       sh '''#!/bin/bash -xe
           echo $POM_VERSION
       '''.stripIndent()
    }
假设我的pom中的版本是1.0.0。以上詹金斯舞台印花如下:

    1.0.0
    echo 1.0.0

编写步骤{}块并将其包装在脚本{}中会起作用,但在我的例子中,我只是在整个环境中使用变量

   stage('Read Pom Version'){
       pom = readMavenPom file: 'pom.xml'
       env.POM_VERSION = pom.version

       sh '''#!/bin/bash -xe
           echo $POM_VERSION
       '''.stripIndent()
    }
假设我的pom中的版本是1.0.0。以上詹金斯舞台印花如下:

    1.0.0
    echo 1.0.0

错误是?rg.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:WorkflowScript:24:第24行第17列应为步骤。pom=readMavenPom文件:“pom.xml”请将此信息添加到原始帖子中。如果你真的需要帮助,请通读指导原则。使用env var POM_版本。错误是?rg.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:WorkflowScript:24:第24行第17列应为步骤。pom=readMavenPom文件:“pom.xml”请将此信息添加到原始帖子中。如果你真的需要帮助,请通读指导原则。使用env var POM_版本。但这是脚本化管道的代码,不是声明性的。投票,因为获得pom版本的代码片段对我有效。但这是脚本化管道的代码,不是声明性的。投票,因为获得pom版本的代码片段对我有效。