maven发布插件 - 操纵项目发布版本

时间:2017-03-28 09:22:27

标签: java maven jenkins pom.xml maven-release-plugin

我正在尝试在Jenkins中配置maven发布版本,其中包含自定义版本,其中包含发布版本的分支。

它看起来像这样:

  

发布:prepare -DreleaseVersion = $ {project.version} - $ {GIT_LOCAL_BRANCH} - 释放:执行

一切正常,但'project.version'占位符(基于pom计算)包含' - SNAPSHOT'后缀。

是否还有其他占位符,我可以使用它来获取' - SNAPSHOT'? 我知道默认情况下,maven发布插件会设置正确的版本 - 只是我想操纵该值。

2 个答案:

答案 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字符串。