use*_*266 18 pom.xml maven jenkins
我有一个Maven pom.xml,我用Jenkins构建项目和发布项目部署.
但在构建"发布版本"之前和之后,我们需要设置我的版本
例如:我在pom.xml中
<properties>
<version-own>0.0.21-SNAPSHOT</version-own>
</properties>
Run Code Online (Sandbox Code Playgroud)
在发布之前,我需要像这样设置
<properties>
<version-own>0.0.25</version-own>
</properties>
Run Code Online (Sandbox Code Playgroud)
发布后我需要像这样设置
<properties>
<version-own>0.0.27-SNAPSHOT</version-own>
</properties>
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?
Ane*_*new 28
如果您不必使用自己的版本属性,请考虑对您的<project><version>0.0.21-SNAPSHOT</version></project>元素进行操作的以下内容:
mvn versions:set versions:commit -DnewVersion="0.0.25"
Run Code Online (Sandbox Code Playgroud)
这将修改您的pom并根据您的喜好调整版本.您可能希望将此更改提交到源代码控制存储库,为此scm插件的scm:checkin目标工作正常(假设您希望自动化):
mvn scm:checkin -Dincludes=pom.xml -Dmessage="Setting version, preping for release."
Run Code Online (Sandbox Code Playgroud)
然后你可以执行你的发布(我推荐maven-release-plugin),之后你可以设置你的新版本并按上面提交它.
该版本的插件是你的朋友.编写上述脚本可能涉及一些参数化构建,或者最好是jenkins的groovy插件,它允许您获取特定于maven的构建变量.
有一种方法可以轻松实现.使用一个命令,您可以更改所需的任何部分:
用于剪切和粘贴:
mvn build-helper:parse-version versions:set -DbuildNumber=555 '-DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}-${buildNumber}'
Run Code Online (Sandbox Code Playgroud)
为清楚起见:
mvn build-helper:parse-version versions:set -DbuildNumber=555
'-DnewVersion=
${parsedVersion.majorVersion}
.${parsedVersion.minorVersion}
.${parsedVersion.incrementalVersion}
-${buildNumber}'
Run Code Online (Sandbox Code Playgroud)
这是一个简洁的示例,说明如何使用构建值一次更新版本
对于初学者,你可以手工完成.如果您的构建遵循maven约定,则可以利用现有的几个maven插件中的一个来帮助管理版本号.
在Maven的版本,插件可以自动完成,以版本号手动更改.它有很好的CLI命令来帮助你在发布之前调整你的poms.
然后是maven-release-plugin,它可以自动完成剪切版本的整个过程.它会将您的快照更改为发布版本,然后在发布版本之后将其滚动到下一个快照.在所有这一过程中,它将poms的离散版本提交给源控件.
再一次,在maven社区更自动化的部分看到成功的秘诀在于你的构建是否以maven的方式做事.黑客,高度调整,非传统的构建通常对成功使用发布插件有很多障碍.