您可以使用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)
}
在shell脚本尝试解析这些变量时,这总是给我一个bad substitution
错误。但是在这种情况下,变量在执行期间由maven-build-helper-plugin
填充。
DnewVersion = $ {parsedVersion.majorVersion}。$ {parsedVersion.minorVersion}。$ {parsedVersion.nextIncrementalVersion}:替代错误
我已经尝试通过DnewVersion=\${parsedVersion.majorVersion}....
对其进行转义,但仍然会遇到相同的错误。
关于在不将其传递给版本插件之前手动对其进行增加的任何建议。
答案 0 :(得分: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}"
}
}
}
}