Maven如何自定义唯一版本号字符串?

6

我想了解在设置<uniqueVersion>true</uniqueVersion>时,自定义Maven构件部署中使用的时间戳字符串的选项。理想情况下,我们希望包含来自源代码控制的更改列表号码,而不是时间戳,因为它是确定给定构建中有哪些功能和错误修复的更可靠方法。


为什么不在版本控制系统和问题跟踪系统中建立关联,以标记代表已解决问题列表的特定里程碑。如果您使用 Maven 3,则以上配置将不再适用。 - khmarbaise
不确定您所说的“建立版本号和更改列表号之间的关系”的意思。 - Tim Clemons
1个回答

10

我想知道在设置为true时,定制Maven构件部署中使用的时间戳字符串的选项有哪些。

您无法自定义它,时间戳字符串是一个明确定义的内部东西,应按原样使用,或者不使用(如果在distributionManagement元素中将uniqueVersion设置为false)。

从Maven书籍中(对于感兴趣的读者,它并没有真正帮助你):

3.3.1.2. SNAPSHOT Versions

Maven版本可以包含一个字符串文字,表示项目当前正在积极开发。 如果版本包含字符串“SNAPSHOT”,则Maven会在安装或发布此组件时将此令牌扩展为UTC(协调世界时)转换为日期和时间值。 例如,如果您的项目版本为“1.0-SNAPSHOT”,并且您将该项目的构件部署到Maven存储库,则如果您在2008年2月7日晚上11:08 PM UTC发布版本,则Maven会将此版本扩展为“1.0-20080207-230803-1”。 换句话说,当您部署快照时,您并没有发布软件组件的版本,而是在特定时间发布了组件的快照。


这是我所能期望的最彻底的答案。谢谢。 - Tim Clemons
我尝试了所有的方法告诉 Maven 不要添加时间戳(m-d-p <configuration><dependencyManagement>,以及 -DuniqueVersion),但它仍然被上传为快照。这是预期的吗?还是由仓库强制执行的? - Ondra Žižka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接