我最近向一个项目添加了 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/