【问题标题】:how to release a project which depends on a 3rd party SNAPSHOT project in maven如何在 Maven 中发布依赖于 3rd 方 SNAPSHOT 项目的项目
【发布时间】:2010-09-19 17:51:01
【问题描述】:

我想使用 maven 发布插件发布快照项目“foo-1.0-SNAPSHOT”。该项目依赖于尚未发布的第 3 方模块“bar-1.0-SNAPSHOT”。 我在项目的 pom.xml 中使用选项“allowTimestampedSnapshots”来允许时间戳快照,但我假设第 3 方模块(栏)没有时间戳,除非我自己构建它,因为 maven 仍然抱怨未解决的 SNAPSHOT 依赖项。

有没有办法释放项目 foo 而不管依赖的 SNAPSHOT 项目,如果没有,我如何向 3rd 方项目添加时间戳?

【问题讨论】:

    标签: maven-2 versioning release snapshot maven-release-plugin


    【解决方案1】:

    问题在于 allowTimestampedSnapshots 参数名称,它在文档中,但插件的源在表达式中使用了不同的参数名称 - ignoreSnapshots

    所以只需使用-DignoreSnapshots=true,发布插件的准备目标将忽略快照依赖项。

    【讨论】:

    • 这行得通,我相信它是正确的答案(OP 正在寻找的答案)。遗憾的是,这没有足够的反对票。 1!当然,您并不想发布具有快照依赖关系的工件,因为您的消费者也需要找到该快照。如果您只是在测试套件(或类似套件)中使用快照,那么“-DignoreSnapshots=true”绝对是一个很好的解决方法。
    • 我几乎放弃了,直到我偶然发现了这个!谢谢!
    【解决方案2】:

    使用 maven-release-plugin 选项

    -DignoreSnapshots=true
    

    而不是

    -DallowTimestampedSnapshots=true
    

    在我的情况下有所帮助,这将允许使用具有快照版本的依赖项来准备和执行发布。

    应该非常小心地处理此选项,因为在发布中使用快照版本可能会在以后破坏您的发布,如果更新了快照依赖项,通常情况下这不是您想要的。

    【讨论】:

      【解决方案3】:

      简短的答案是查看following answer.... 长答案是您可以解决它。

      我过去应对的唯一方法是有效地分叉 3rd 方库并自己删除一个版本。当然,这说起来容易做起来难,如果图书馆又大又复杂,如果 3rd 方图书馆是封闭源代码的,这就是不可能的。更简单的方法可能是接近第 3 方并要求他们删减版本。

      另一种选择可能是复制他们的 pom(确保它没有快照)更改版本信息并在您的存储库中手动安装 pom 和工件。

      【讨论】:

      • 不完全正确,请参阅其他答案,您可以通过-DignoreSnapshots=true 告诉 maven 即使有快照依赖项也要发布。你应该避免这样做,只有在绝对没有其他选择的情况下才这样做,这是另一回事。
      • Sonatype 建议部署到本地存储库blog.sonatype.com/2009/01/…
      【解决方案4】:

      上一个答案建议更改组和工件 id...不要这样做,因为 maven 稍后在释放此依赖项时不会将其识别为相同的工件,并且您最终会在类路径上得到两个副本.我的首选方法是仅更改版本,我将执行以下操作:[原始版本]-[我的组织名称]-[我从中提取的 svn 版本],所以我得到类似 1.0-SONATYPE-3425 的内容。通过使用 svn rev,我总是可以再次拉取源代码并在需要时对其进行修补,并且确切地知道我正在使用什么,而无需将整个源代码拉入我自己的 svn。

      更新 - 我 blogged 不久前就知道了。

      【讨论】:

        【解决方案5】:

        只需使用您拥有的 pom 安装 jar。我通常会更改组和工件 ID,以明确这不是正式版本,但这通常是解决您的问题的最佳方法。

        【讨论】:

          猜你喜欢
          • 2012-06-02
          • 2016-09-30
          • 1970-01-01
          • 2016-01-13
          • 1970-01-01
          • 2012-11-10
          • 2014-05-25
          • 2018-10-20
          相关资源
          最近更新 更多