环境:Maven 3.3.9
你好,
我有一个版本为 1.0-SNAPSHOT 的 maven jar 模块。当我执行 mvn install
时,安装到本地存储库 (~/.m2/repository
) 的 jar 没有时间戳。我同意这不是您希望在 ~/.m2/repository
存储库中包含时间戳 jar 的常见情况。但还有几个问题:
mvn install
是否自动附加时间戳?寻找一些 配置方式而不是在最终名称中使用${timestamp}
。- 自动时间戳机制是否适用于
mvn deploy
? - 有没有办法告诉maven使用
~/.m2/repository
本身用于mvn deploy
?
谢谢,
拉克什
最佳答案
mvn install
只会将您的项目放入本地缓存,这意味着它可以供您计算机上的其他项目使用。
mvn deploy
会将 Artifact 部署到您的远程存储库中,该存储库通常是公司存储库管理器。
在 SNAPSHOT
的情况下,这意味着该 Artifact 尚未最终确定并且正在开发中。这意味着您可以创建多个相同版本的状态,例如 1.0.0-SNAPSHOT
。在部署到存储库管理器期间创建的时间戳旨在让不同的 Artifact 可用于开发。如果您想使用最新版本的 SNAPSHOT,您可以通过 -U
选项进行控制。
在您准备好之后,您可以创建一个所谓的发布,它将版本设置为类似 1.0.0
(没有 SNAPSHOT)的版本,它也被部署到一个不可变的发布存储库中。
此外,在您的本地缓存 $HOME/.m2/repository
中设置时间戳并没有真正的意义,因为您可以控制何时在那里安装 Artifact 而不是其他人,并且您应该避免使用 finalName
更改,因为这仅适用于您的 target
文件夹,而不适用于您的本地缓存。
最后为 mvn deploy
使用本地缓存没有意义,因为这背后的想法是什么?最好是开始使用像 Nexus、Artifactory 或 Archiva 这样的存储库管理器,特别是如果你在公司环境中工作。
关于java - Maven - 如何安装/部署带时间戳的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36525794/