java - Maven - 如何安装/部署带时间戳的快照

标签 java maven

环境:Maven 3.3.9

你好,

我有一个版本为 1.0-SNAPSHOT 的 maven jar 模块。当我执行 mvn install 时,安装到本地存储库 (~/.m2/repository) 的 jar 没有时间戳。我同意这不是您希望在 ~/.m2/repository 存储库中包含时间戳 jar 的常见情况。但还有几个问题:

  1. mvn install 是否自动附加时间戳?寻找一些 配置方式而不是在最终名称中使用 ${timestamp}
  2. 自动时间戳机制是否适用于mvn deploy
  3. 有没有办法告诉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/

相关文章:

java - 如何根据请求有效负载将请求与 Java EE 应用程序中的 HttpSession 相关联?

java - 如何制作一个缓冲流来在内存中存储字符串?

java - 当我不能时,Maven 正在执行什么样的魔法来运行这个项目?

maven-2 - 从原型(prototype)创建项目时如何抑制属性替换?

java - 这个声明是什么意思?

java - 如何为 Eclipse 创建自定义 'new class wizard'?

java - 如何使用 ThreadLocal.withInitial 初始化 Map 类型的线程本地?

java - 解决错误: unmappable character for encoding UTF8

java - 解决 NetBeans Maven 项目中的依赖关系问题

java - 尝试将 Java 消息服务 (JMS) API 与服务总线和 AMQP 结合使用