Maven快照“生命周期”

时间:2012-12-05 00:00:04

标签: apache maven snapshot

以下是我目前对Maven如何处理依赖关系的理解。

当依赖者正在积极地工作时,Maven会附加" -SNAPSHOT"到版本的最后。 ex)1.1.1-SNAPSHOT。这些快照将上载到专门负责快照的远程存储库。相同的远程存储库有一个用于发布的软件包版本的部分。现在,当项目更新了依赖项时,Maven会将最新版本的程序包提取到本地存储库中。仅根据快照上的时间戳更新SNAPSHOTS。如果Maven下载了一个发行版本(例如:1.1.0),它将永远不会寻找具有当前版本的另一个包。

现在我的问题是:

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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

    Best Practice: Software Versioning