【问题标题】:Maven snapshot "lifecycle"Maven 快照“生命周期”
【发布时间】:2012-11-22 17:48:21
【问题描述】:

这是我目前对 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 中更新的版本吗?

【问题讨论】:

    标签: apache maven snapshot


    【解决方案1】:

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

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

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

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

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

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

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

    Best Practice: Software Versioning

    【讨论】:

    • 第三方依赖呢?会不会有这些的快照,或者这些总是发布版本?其次,任何未开发的东西都会有 SNAPSHOTS,只有在创建分支时,SNAPSHOTS 才会成为发布版本。作为一个一直在主分支上工作的开发人员,我通常不会在我的 pom 中看到我自己的 .jar 的发布版本?
    • 通常您使用已发布(稳定)的第三方依赖项。但是,如果您正在与诺基亚合作并集成一些新服务,则可能是您具有快照依赖项。但通常快照依赖不会离开公司的内网。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多