Maven发布插件 - 如何破解发布项目的版本

ddd*_*ddd 1 java maven maven-release-plugin jenkins

我正在使用詹金斯的maven发布插件进行CICD.由于各种原因,我们没有像我们想象的那样做SNAPSHOT.我们将Jenkins设置为针对master分支运行构建,版本为0.1,1.0.我们希望每次运行Jenkins时都会发布版本号.这些是我在Jenkinsfile中的命令:

sh "mvn -B release:clean"
sh "mvn -B release:prepare"
sh "mvn -B release:perform"
Run Code Online (Sandbox Code Playgroud)

结束了收到错误You don't have a SNAPSHOT project in the reactor projects list.因为release:prepare总是寻找SNAPSHOT分支,所以不足为奇.有办法解决它吗?我找到了这个选项-DignoreSnapshots,prepare但它没有用.

khm*_*ise 7

发布插件旨在拥有一个1.0-SNAPSHOT之前运行的发布插件mvn -B release:prepare,它将版本更改为发行版本1.0,然后将其更改为1.1-SNAPSHOT(所谓的下一个dev版本).在release:perform标记状态下,您1.0将从版本控制中检出构建状态并执行mvn clean deploy.

此外,使用发布插件可以通过以下方式完成:

mvn -B release:prepare release:perform
Run Code Online (Sandbox Code Playgroud)

如果出现问题,您可以这样做mvn release:clean(但如果已手动创建,则需要删除标签).

如果你只有那些不起作用的版本......除了那个SNAPSHOT不是分支它是一个版本的东西......

您可以通过build-helper-maven-pluginversions-maven-plugin完成您喜欢的任务:

mvn build-helper:parse-version versions:set \
 -DnewVersion=\${parsedVersion.majorVersion}.\
   ${parsedVersion.minorVersion}. \
   ${parsedVersion.nextIncrementalVersion} \
  versions:commit
Run Code Online (Sandbox Code Playgroud)

之后,您应该将此更改提交到版本控制(最好通过Jenkins中的管道完成).此外,通过scm-maven-plugin:

mvn scm-maven-plugin:commit
Run Code Online (Sandbox Code Playgroud)