我正在尝试在Jenkins中配置maven发布版本,其中包含自定义版本,其中包含发布版本的分支。
它看起来像这样:
发布:prepare -DreleaseVersion = $ {project.version} - $ {GIT_LOCAL_BRANCH} - 释放:执行
一切正常,但'project.version'占位符(基于pom计算)包含' - SNAPSHOT'后缀。
是否还有其他占位符,我可以使用它来获取' - SNAPSHOT'? 我知道默认情况下,maven发布插件会设置正确的版本 - 只是我想操纵该值。
答案 0 :(得分:0)
还有其他占位符,我可以使用它来获取它而没有'-SNAPSHOT'吗?
不幸的是,我相信你的问题的答案是“不,没有内置变量可以满足你的需求”。但是,您可以尝试创建属性,然后在项目的版本标记内使用该属性。
我无法测试这个,因为我没有设置适当的环境,而且已经很晚了,所以我现在没有时间设置它。我将概述我的想法,也许它会对你有所帮助:
你可以在你的POM中做这样的事情:
<version>${artifactReleaseVersion}-SNAPSHOT</version>
<properties>
<artifactReleaseVersion>0.0.1</artifactReleaseVersion>
</properties>
然后使用该属性运行您的目标:
release:prepare -DreleaseVersion=${artifactReleaseVersion}-${GIT_LOCAL_BRANCH}-Release release:perform
答案 1 :(得分:0)
请参阅官方文档https://maven.apache.org/maven-ci-friendly.html。
从3.5开始,maven支持3种属性:${revision}
,${sha1}
和${changelist}
。因此,您可以使用类似
<version>${revision}${changelist}</version>
...
<properties>
<revision>1.3.1</revision>
<changelist>-SNAPSHOT</changelist>
</properties>
并用
调用release:prepare -DreleaseVersion=${revision}-${GIT_LOCAL_BRANCH}-Release
但是 maven-release-plugin与CI友好版本不能很好地协同工作。读取:它可能会覆盖版本标记中的占位符。因此,最后您可能只是通过bash命令操作-SNAPSHOT字符串。