2

这是我目前对 Maven 如何处理依赖项的理解。

当一个依赖项在 Maven 上积极工作时,会将“-SNAPSHOT”附加到版本的末尾。例如)1.1.1-快照。这些快照被上传到专门负责快照的远程存储库。同一个远程存储库有一个包的已发布版本部分。现在,当项目更新了依赖项时,Maven 会将包的最新版本拉入本地存储库。仅 SNAPSHOTS 会根据快照上的时间戳进行更新。如果 Maven 拉下一个发布版本(例如:1.1.0),它将永远不会寻找具有当前版本的另一个包。

现在我的问题是:

  • 我的理解有什么缺陷?我错过了一个概念性的作品吗?
  • 当包从 SNAPSHOT 移动到发布版本时,如何更新 pom.xml 以反映包的发布版本?这是手动过程吗?
  • 最后,如果发布了一个包,我们将使用上面的示例,发布 1.1.1。是创建了 1.1.2-SNAPSHOT 还是创建了 1.2.0-SNAPSHOT,这是将在 poms 中更新的版本吗?
4

1 回答 1

1

快照目前处于开发版本中,可能不稳定。

我们是仍然使用 svn 的老式公司:

  1. 开发在主干中进行,pom 文件中的版本是快照(我们依赖于一些具有固定版本的开源库,我们会在新版本发生时立即更新它们,我们有信心切换)
  2. 一旦我们要发布,我们就会分支主干并将 pom 中的版本更改为对应的固定版本(一些公司可以用后缀 -rc 标记它们)
  3. 发布(使用 -rc 的公司会将 pom 中的版本更改为固定版本)

请查看发布 maven 插件以跳过手动版本更改。

我希望这能回答你的一些问题。

关于版本控制答案 - 这取决于。请在此处阅读更多信息:

http://en.wikipedia.org/wiki/Software_versioning

最佳实践:软件版本控制

于 2012-12-05T07:13:28.107 回答