gpt4 book ai didi

java - 在 maven-release-plugin 生成的标签中指定日期

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:23 25 4
gpt4 key购买 nike

在我们的项目中,我们以以下格式声明我们的 SVN 标签:

YYYY-MM-DD - v{project.version} [${environment}]

eg 2012-01-16 - v1.0.1 [LIVE]

是否可以使用 maven-release 插件(版本 2.2.2)实现此目的?

值得指出的是,版本和环境部分是获取的,并与发布插件一起使用。纯粹是无法检索的时间戳。

这是我期望的工作方式:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<preparationGoals>clean verify</preparationGoals>
<tagNameFormat>${timestamp} - v@{project.version} [${env}]</tagNameFormat>
<checkModificationExcludes>
.
.
.
</checkModificationExcludes>
</configuration>
</plugin>

timestamp 属性是使用 buildnumber-maven-plugin 成功生成的,因为它被添加到 list 文件以包含到 war 文件中。

我尝试将 buildnumber:create 目标添加到准备目标中,但在执行 release:prepare 时会产生以下输出

What is SCM release tag or label for "Project Name"? (a.b.c.d) null - v1.0.1 [LIVE]: :

问题似乎是在设置 tagName 时未生成时间戳属性,这表明准备目标未在要求 tagName 的阶段执行。

以下可能有效(将在午餐后测试)尽管我更愿意调用 release:prepare

mvn buildnumber:create release:prepare

欢迎任何输入。

干杯


编辑

我已经使用 buildnumber:create release:prepare 进行了测试,它确实按预期工作,尽管我确实必须进行进一步的修改,老实说这有点痛苦。

TagNameFormat 当前包含:

YYYY-MM-DD - v{project.version} [${environment}]

这包含空格和方括号,在使用这种格式执行时,您将收到一条错误消息,指示 URL 未正确进行 URI 编码。要解决这个问题,您必须以已经经过 URI 编码的格式指定 tagNameFormat,例如:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<preparationGoals>clean verify</preparationGoals>
<tagNameFormat>${timestamp}%20-%20v@{project.version}%20%5B${env}%5D</tagNameFormat>
<checkModificationExcludes>
.
.
.
</checkModificationExcludes>
</configuration>
</plugin>

这很讨厌,但它确实有效,它会根据需要创建标签。

仍然有兴趣看看是否有人对如何通过执行获取 tagNameFormat 中的时间戳有任何建议:

mvn release:prepare

不是

mvn buildnumber:create release:prepare

最佳答案

从 Maven 2.1 开始,有一个变量:maven.build.timestamp 可用,可以使用属性进行配置:

<properties>
<maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
</properties>

参见:http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables

这可能使内部版本号插件不再需要并且应该更易于使用。

关于java - 在 maven-release-plugin 生成的标签中指定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8880105/

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