java - Maven 最佳实践 : including timestamps for snapshot releases or not?

标签 java maven-2

我最近向一个项目添加了 Maven 快照构建功能,配置为在部署的工件上使用唯一的时间戳版本。但是对于这是否是正确的做法存在一些困惑(有问题的快照被部署到公共(public)存储库之一,而不仅仅是在像公司这样的实体内):有人说这会在尝试使用快照时引起问题。

因此:鉴于有多少 Maven 是基于约定的,并且遵循公认的最佳实践,我希望有一些关于选择哪个选项的指南。

(注意:我稍微编辑了标题——我特别感兴趣的是通过部署选项为公共(public)快照版本包含唯一时间戳的好处(或没有);如果时间戳是包括在内,尽管这显然是一些相关的问题)

最佳答案

作为规则,您应该始终针对 -SNAPSHOT 依赖项进行构建。但是,您应该避免发布包含 -SNAPSHOT 依赖项的产品。如果您使用 Maven Release Plug-in为了自动化您的发布,它会检查以确保您没有使用发布插件或依赖项。

但这并不总是可能的。在我需要基于快照版本发布某些内容的情况下,即当我使用显式时间戳/版本号而不是 -SNAPSHOT 版本命名方案时。

您可以使用 Versions Maven Plugin 自动执行此操作.它提供了在您的 POM 中锁定和解锁快照版本的目标。

关于java - Maven 最佳实践 : including timestamps for snapshot releases or not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1019562/

相关文章:

java - 如何配置 JPA 以在 Maven 中进行测试

java - 如何在 jetty-maven-plugin 中启用 Java 断言?

java.sql.Timestamp 比较错误?

HTML 中嵌入 jar 的 Java Applet 安全问题

java - 将带时区的 Joda-Time `DateTime` 转换为不带时区的 DateTime?

maven-2 - Maven 2 可以在同一个项目中使用两个不同版本的构建插件吗?

java - 为什么 Maven 正在查找错误的 repo 协议(protocol)?

distcc 的 Java 等价物

java - 具有 session 复制的tomcat集群中的jsf应用程序

java - BufferedReader 返回与原始文件不匹配的文件