作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题是更广泛的 Automatically incrementing a build number in a Java project 的缩小版本
具体来说,我希望 Maven 生成格式为 major.minor.sequence
的版本其中 major.minor
硬编码在 pom.xml
中但是 sequence
编号是从命令 git rev-list HEAD --count
的输出中获得的.如果 git status
,我还想附加字符串“-WIP”不包含 nothing to commit, working tree clean
字样.
完成此任务的最简单方法是什么?
最佳答案
对于这样的事情,Maven 3.5.0 中有一个解决方案。你可以使用 ${sha1}
, ${changelist}
, ${revision}
来达到这样的目的。可以是其中一个,也可以将它们组合在一起。
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>18</version>
</parent>
<groupId>org.apache.maven.ci</groupId>
<artifactId>ci-parent</artifactId>
<name>First CI Friendly</name>
<version>${revision}${sha1}${changelist}</version>
...
<properties>
<revision>1.3.1</revision>
<changelist>-SNAPSHOT</changelist>
<sha1/>
</properties>
</project>
通过使用上面的内容,您可以使用以下内容简单地构建应用程序:
mvn clean package
但也可以这样做:
mvn -Drevision=2.7.1 clean package
根据您的示例,您可以使用:
mvn -Dsha1=-XXXX clean package
XXXX
可以替换为从 Git 中提取的信息(描述),甚至可以替换为来自 Jenkins 的信息(GIT_REVISION 等)。
非常重要的提示使用 ci friendly documentation page 中描述的 flatten-maven-plugin .
关于git - 如何让 Maven 自动使用 git status 作为版本号的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44054909/
我是一名优秀的程序员,十分优秀!