gpt4 book ai didi

git - 如何让 Maven 自动使用 git status 作为版本号的一部分?

转载 作者:行者123 更新时间:2023-12-04 17:51:57 25 4
gpt4 key购买 nike

这个问题是更广泛的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com