通过 jenkins 声明管道增加 Maven 版本

incrementing maven version through jenkins declarative pipeline

我正在尝试通过 Jenkins 增加我的 pom 版本,但我面临着 Jenkins 声明管道的脚本元素的许多问题。 我的目标是:

  1. Jenkins 从 SCM 中提取代码
  2. 运行 maven 插件
  3. pom 中应用程序的增量版本
  4. 将新的 pom 合并回 SCM

我已设法从版本中删除“-SNAPSHOT”,并将版本(例如 1.0.0)存储在管道脚本元素内的一个变量中。然后我无法使用该变量来增加它。

pipeline { agent any tools { maven 'maven' } stages { stage ('Git checkout branch') { steps { git branch: 'branch', credentialsId: '****', url: 'https://projectRepo' } } stage ('Increment snapshot') { steps { dir('directory') { //Remove snapshot from version in pom sh 'mvn versions:set -DremoveSnapshot' script { //Get the version and assign to variable 'version' version = '$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)' } //content of version can only be accessed by ${version} sh "echo ${version}" } } } } }

我的目标是在脚本标签中获取版本,然后执行像这样的拆分 .split("\."),然后递增最后一个数字,然后,当我发布时,我将使用使用新版本更新 pom 的 maven 标志,加上 -SNAPSHOT 到版本的末尾

当你使用build-helper-maven-plugin时,你可以将版本解析成它的组件:

https://www.mojohaus.org/build-helper-maven-plugin/parse-version-mojo.html

这不仅提供 majorVersionminorVersion 等元素,还提供 nextMajorVersionnextMinorVersion 等元素