【问题标题】:How do I prevent Maven 2 from searching remote repositories for specific local depedencies?如何防止 Maven 2 在远程存储库中搜索特定的本地依赖项?
【发布时间】:2010-08-24 19:19:27
【问题描述】:

如何防止 Maven 2 在远程存储库中搜索仅在本地存储库中的特定依赖项?

【问题讨论】:

    标签: java maven-2 repository


    【解决方案1】:

    如何防止 Maven 2 在远程存储库中搜索仅在本地存储库中的特定依赖项

    嗯,实际上,Maven 不会,除非:

    • 它们是 SNAPSHOT 依赖项,在这种情况下,这是预期的行为。
    • 他们缺少.pom 文件,在这种情况下,您可以提供或生成它(请参阅下面的问题)。

    相关问题

    【讨论】:

    • 原来我丢失了 Maven 试图从远程存储库中检索的所有本地依赖项的 .pom 文件。
    【解决方案2】:
    1. nexus 设置为存储库管理员。
    2. 如有必要,添加其他远程代理存储库
    3. 添加您的本地托管存储库(托管在 nexus 服务器上)
    4. 按照正确的搜索顺序定义一组存储库,首先使用本地存储库。
    5. 将您的构建更改为指向 nexus 组 url(在您的 settings.xml 中使用 mirrorOf=*)
    6. 运行您的构建并让 nexus 管理本地与远程依赖关系解析

    【讨论】:

      【解决方案3】:

      在您的 POM 中为您的远程依赖项或您要从本地存储库获取的本地版本使用固定版本号。

      Maven 试图友好并获取最新和最好的任何没有指定版本号的东西。

      为了快速修复每次构建时不等待下载互联网,您可以使用 mvn -o 强制离线构建,这样就不会浪费时间尝试获取新版本。

      @crowne 的回答也是非常好的建议,尤其是设置您自己的 nexus 并确保在那里配置所有远程 repo,这样当某天 repo 消失时,您将永远不会有不愉快的意外。

      【讨论】:

        【解决方案4】:

        为了防止 Maven检查远程存储库,您可以使用 -o 标志。否则,Maven 将检查任何快照依赖项是否是最新的。您可以使用诸如Nexus 之类的依赖管理器来获得对依赖解析的细粒度控制。 pom.xmlsettings.xml 文件中的 repository section 也有一个 updatePolicy 元素,允许您配置 Maven 检查更新依赖项的频率。

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-27
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 2011-03-11
        • 2021-03-17
        • 2014-03-01
        • 1970-01-01
        相关资源
        最近更新 更多