在Maven中使用多个存储库

Som*_*bie 8 maven

我有一个使用内部存储库和中央存储库的项目.有没有办法可以配置settings.xml,以便我可以使用两者而不是一个?当我添加

<mirrors>
    <mirror>
        <id>MY ID</id>
        <url>MY URL</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>
Run Code Online (Sandbox Code Playgroud)

在settings.xml中,我可以查看自己的内部存储库,但它会覆盖中央存储库.

我确信这是Maven新手常见的问题.

par*_*fal 8

有几种方法可以做到这一点.

最好的IMO是让您的本地存储库服务器充当Maven Central的代理.Nexus和Artifactory都是开箱即用的.如果您正在使用Apache或其他Web服务器,则应切换.

您还可以更新设置,从镜像中排除目标服务器:

<mirrorOf>*,!MyOtherRepository</mirrorOf>
Run Code Online (Sandbox Code Playgroud)

如果您有多个本地存储库服务器,这可以工作,但我认为您不能以这种方式排除中央:默认情况下,Maven在中央查找工件,并且您的服务器充当它的替身.

这会在POMS中留下显式存储库条目,这些条目引用本地存储库.如果您的本地存储库只为您的工件提供服务,那么这可能是第二个最简单的事情(特别是如果您使用包含存储库规范的父POM).