环境:Maven 3.3.9
嗨,
我有一个maven jar模块,版本为1.0-快照。当我执行mvn install时,安装到本地存储库(~/.m2/repository)中的jar没有时间戳。我同意,这不是一个常见的场景,您希望在您的~/.m2/repository回购中有时间戳罐子。但还是有几个问题:
mvn install会自动追加时间戳吗?寻找一些配置方式,而不是在最终名称中使用${timestamp}。mvn deploy?~/.m2/repository本身用于mvn deploy谢谢,
拉凯什
发布于 2016-04-10 10:22:22
mvn install只会将项目放入本地缓存,这意味着它可以用于计算机上的其他项目。
mvn deploy将把工件部署到远程存储库中,而远程存储库通常是企业存储库管理器。
在SNAPSHOT的情况下,这意味着这个工件还没有最后确定,并且处于开发人员之下。这意味着您可以创建几个相同版本的状态,比如1.0.0-SNAPSHOT。在部署到存储库管理器期间创建的时间戳旨在使不同的工件可用于开发。如果您想使用快照的最新版本,可以通过-U选项进行控制。
当您做好准备之后,您就可以创建一个所谓的发行版,它将把版本设置为类似于1.0.0 (没有快照)的版本,这个版本也被部署到一个不可变的发行存储库中。
此外,在本地缓存$HOME/.m2/repository中使用时间戳并不真正有意义,因为您可以控制何时在本地安装工件,而不是其他人,而且您应该防止使用finalName更改,因为这只针对您的target文件夹,而不是针对本地缓存。最后,对mvn deploy使用本地缓存是没有意义的,因为这背后的想法是什么?最好是开始使用存储库管理器,比如Nexus、Artifactory或Archiva,特别是如果您是在公司环境中工作的话。
发布于 2016-04-10 12:02:29
除了@khmarbaise的答复外,请参阅下列参考资料:
但我没有找到任何最新的文档,其中已经集成了。(@khmarbaise?)
由于磁盘空间保存的原因,在安装本地存储库时不会创建时间戳文件。然而,当一个快照被解析和下载时,它会用它的时间戳版本号保存(例如: 0.15-20050401.150432-2)。
长话短说:
可以将相同的快照版本部署到来自不同主机的远程存储库中,因此必须以某种方式区分它们。它们由时间戳(和一个内置号)来区分。
只有当Maven解析并因此从远程下载时,本地存储库中才会有带有时间戳(和版本号)的工件。
所以:
https://stackoverflow.com/questions/36525794
复制相似问题