首页 文章

使用Jenkins管道中的build-helper-plugin增加Maven project.version

提问于
浏览
0

您可以使用 maven-build-helper-plugin 来解析版本,然后使用 maven-version-plugin 设置新版本(请参阅此blog):

clean build-helper:parse-version versions:set -DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion} versions:commit

当命令在Maven作业中作为“maven目标”-prebuild-step执行时,这可以正常工作 .

现在我正在尝试将我的所有Maven作业转换为管道作业 .

withMaven(
  // Maven-Installation
  maven: "${MavenHelper.MAVEN3D3D9}") {

  String command = 'mvn build-helper:parse-version versions:set -DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion} versions:commit -f ' + komponente.getPomPath()

  sh(command)      
}

这总是给我一个 bad substitution 错误,因为shell脚本试图解析这些变量 . 但在此上下文中,变量在执行期间由 maven-build-helper-plugin 填充 .

DnewVersion = $ . $ . $ :bad substitution

我已经尝试通过 DnewVersion=\${parsedVersion.majorVersion}.... 逃脱它们但仍然得到相同的错误 .

任何建议,让它工作,而不是手动增加它,然后再将其传递给版本插件 .

1 回答

  • 0

    以下是有效的:

    pipeline {
        agent any
        tools {
            maven 'Maven 3.6.0'
        }
        stages {
            stage('Change Version') {
                steps {
                    sh 'mvn build-helper:parse-version versions:set -DnewVersion=\\${parsedVersion.majorVersion}.\\${parsedVersion.minorVersion}.\\${parsedVersion.nextIncrementalVersion}'
                    sh "mvn build-helper:parse-version versions:set -DnewVersion=\\\${parsedVersion.majorVersion}.\\\${parsedVersion.minorVersion}.\\\${parsedVersion.nextIncrementalVersion}"
                }
            }
        }
    }
    

相关问题