Maven 发布插件 - 如何修改发布项目的版本
Maven release plugin - how to bump version of release project
我正在将 Maven 发布插件与 Jenkins 一起用于 CICD。由于各种原因,我们没有按预期进行快照。我们将 Jenkins 设置为 运行 针对主分支构建 0.1、1.0 等版本。每次我们 运行 Jenkins 时,我们都想提高版本号。这些是我在 Jenkinsfile 中的命令:
sh "mvn -B release:clean"
sh "mvn -B release:prepare"
sh "mvn -B release:perform"
最终收到错误 You don't have a SNAPSHOT project in the reactor projects list
。不足为奇,因为 release:prepare
总是寻找 SNAPSHOT 分支。有办法绕过它吗?我为 prepare
找到了此选项 -DignoreSnapshots
,但它不起作用。
不幸的是,maven 发布插件是不可能的。你应该有快照。
但是如果你只需要更新项目版本你可以使用maven版本插件
见http://www.mojohaus.org/versions-maven-plugin/examples/set.html
发布插件旨在在 运行 发布插件 mvn -B release:prepare
之前有一个 1.0-SNAPSHOT
,它将版本更改为发布版本 1.0
之后它将将它们更改为 1.1-SNAPSHOT
(所谓的下一个开发版本)。在 release:perform
期间,您的构建 1.0
的标记状态将从版本控制中检出并将执行 mvn clean deploy
。
可以通过以下方式进一步使用发布插件:
mvn -B release:prepare release:perform
如果出现问题,您可以mvn release:clean
(但如果手动创建标签,则需要删除标签)。
如果您只有无法使用的版本...除此之外 SNAPSHOT
不是分支,它是版本问题...
您可以通过 build-helper-maven-plugin and versions-maven-plugin:
完成您喜欢的事情
mvn build-helper:parse-version versions:set \
-DnewVersion=${parsedVersion.majorVersion}.\
${parsedVersion.minorVersion}. \
${parsedVersion.nextIncrementalVersion} \
versions:commit
之后,您应该将此更改提交到版本控制中(最好通过 Jenkins 中的管道完成)。此外通过 scm-maven-plugin:
mvn scm-maven-plugin:commit
我正在将 Maven 发布插件与 Jenkins 一起用于 CICD。由于各种原因,我们没有按预期进行快照。我们将 Jenkins 设置为 运行 针对主分支构建 0.1、1.0 等版本。每次我们 运行 Jenkins 时,我们都想提高版本号。这些是我在 Jenkinsfile 中的命令:
sh "mvn -B release:clean"
sh "mvn -B release:prepare"
sh "mvn -B release:perform"
最终收到错误 You don't have a SNAPSHOT project in the reactor projects list
。不足为奇,因为 release:prepare
总是寻找 SNAPSHOT 分支。有办法绕过它吗?我为 prepare
找到了此选项 -DignoreSnapshots
,但它不起作用。
不幸的是,maven 发布插件是不可能的。你应该有快照。
但是如果你只需要更新项目版本你可以使用maven版本插件
见http://www.mojohaus.org/versions-maven-plugin/examples/set.html
发布插件旨在在 运行 发布插件 mvn -B release:prepare
之前有一个 1.0-SNAPSHOT
,它将版本更改为发布版本 1.0
之后它将将它们更改为 1.1-SNAPSHOT
(所谓的下一个开发版本)。在 release:perform
期间,您的构建 1.0
的标记状态将从版本控制中检出并将执行 mvn clean deploy
。
可以通过以下方式进一步使用发布插件:
mvn -B release:prepare release:perform
如果出现问题,您可以mvn release:clean
(但如果手动创建标签,则需要删除标签)。
如果您只有无法使用的版本...除此之外 SNAPSHOT
不是分支,它是版本问题...
您可以通过 build-helper-maven-plugin and versions-maven-plugin:
完成您喜欢的事情mvn build-helper:parse-version versions:set \
-DnewVersion=${parsedVersion.majorVersion}.\
${parsedVersion.minorVersion}. \
${parsedVersion.nextIncrementalVersion} \
versions:commit
之后,您应该将此更改提交到版本控制中(最好通过 Jenkins 中的管道完成)。此外通过 scm-maven-plugin:
mvn scm-maven-plugin:commit