【问题标题】:maven snapshot repositoriesmaven 快照存储库
【发布时间】:2010-12-13 13:55:19
【问题描述】:

我的项目依赖于 3rd 方库,该库仅在其 maven 存储库中具有快照(没有发布,这看起来很奇怪,但事实就是如此)。每次我做一个完整的构建(并清理我的本地 .m2 存储库)时,maven 显然会去获取最新的构建。

我的存储库代理了其中包含快照的存储库,有没有办法告诉我的存储库停止拉取新版本,基本上只保留当前版本?我真的不想每晚都拉一个新版本。

我唯一的想法是手动标记当前版本,但是有很多依赖项,它们都依赖于 SNAPSHOT 版本。有没有更简单的方法来做到这一点?

谢谢,

杰夫

【问题讨论】:

    标签: maven-2 repository release snapshot


    【解决方案1】:

    看看来自 sonatype 的这篇博文:Best Practices for 3rd Party Snapshot Dependencies

    我通常将文件作为某个版本安装到我的代理或本地 repo,然后引用该版本。这样您就不会冒快照从您身下消失的风险。

    【讨论】:

    • 其实去掉snapshot标签绝对是我要走的路。不过,我所拥有的库并不容易,因为它们的完整二进制发行版实际上并没有附带 POM。但是通过一些工作,我应该能够在没有快照依赖的情况下安装它。谢谢。
    • mvn deploy:deploy-file 将创建 pom。
    【解决方案2】:

    您是否使用-U (-update-snapshots) 选项运行构建?如果是这样,请尝试不使用。

    否则,如果仓库只有这个依赖,你可以禁用这个仓库,Maven 将继续使用它在本地仓库中找到的最后一个版本。

    【讨论】:

      【解决方案3】:

      您是否尝试在<pluginRepository><snapshots> 元素中使用never 策略指定<updatePolicy>?请参阅Plugin RepositoriesRepositories

      【讨论】:

        【解决方案4】:

        使用 --no-snapshot-updates 选项来禁止 SNAPSHOT 更新。

        例如

        $ mvn --no-snapshot-updates compile
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-28
          • 1970-01-01
          • 2011-07-16
          • 2015-12-05
          • 2020-12-08
          • 1970-01-01
          • 2014-03-27
          相关资源
          最近更新 更多