如果内部存储库中没有工件,则需要从MavenCentral下载工件

时间:2017-06-29 12:24:26

标签: maven maven-3

我在settings.xml上有以下配置来获取组织的内部工件。

<mirrors>
    <mirror>
        <id>internal-repository-1</id>
        <url>http://local.host/repository/internal/</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>

通常它有每个工件来构建内部项目。但我想从MavenCentral下载一些其他工件。由于我使用的是上面的镜像配置,因此不会检查MavenCentral上的工件。

我想知道有没有办法从MavenCentral中下载工件,如果它在我们的内部存储库中不可用,只需修改settings.xml

我已经提到了以下问题但没有帮助。

maven repository mirrors

Can I add maven repositories in the command line?

3 个答案:

答案 0 :(得分:1)

您的内部存储库可能是Nexus或Artifactory。只需将MavenCentral添加为内部存储库中的代理存储库即可。然后,您将能够通过内部存储库访问MavenCentral中的所有内容。

答案 1 :(得分:1)

如果您的内部仓库不想代理maven central repo,您​​可以禁用对它的集中请求,如:

<mirrors>
    <mirror>
        <id>internal-repository-1</id>
        <url>http://local.host/repository/internal/</url>
        <mirrorOf>*,!central</mirrorOf>
    </mirror>
</mirrors>

确保将中央存储库声明为存储库列表中的最后一个存储库,因为maven 3从上到下进行搜索,并且您希望中心成为后备。

答案 2 :(得分:1)

如果有人遇到同样的问题,请将以下代码块放入settings.xml也可以。

<profiles>
    <profile>
        <id>profile-1</id>
        <repositories>
            <repository>
                <id>internal-repository-1</id>
                <url>http://local.host/repository/internal/</url>
            </repository>
        </repositories>
    </profile>
</profiles>
<activeProfiles>
    <activeProfile>profile-1</activeProfile>
</activeProfiles>