多个镜子的maven设置

时间:2013-04-27 22:02:16

标签: eclipse m2eclipse

我有一些个人项目,很少有公司项目。企业项目使用镜像的企业SVN存储库来实现maven依赖关系。我想以这样的方式配置我的settings.xml,以便首先根据我的公司镜像检查依赖项。只有在这里找不到依赖关系时(对于我的个人项目),它才应该检查原始的" central"由我的公司回购镜像的回购。这可能吗。下面是我现在所拥有的一个片段,但它没有击中中心"需要时回购。感谢。

<servers>
    <server>
        <id>central-mirror</id>
        <username>myusername</username>
        <password>mypassword</password>
        <filePermissions>664</filePermissions>
        <directoryPermissions>775</directoryPermissions>
        <configuration></configuration>
    </server>
</servers>

<mirrors>
    <mirror>
        <id>central-mirror</id>
        <url>https://url.to.my/mirror</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>


<proxies>
    <proxy>
    <id>proxy</id>
    <active>true</active>
    <protocol>http</protocol>
    <host>my.corporate.proxy</host>
    <port>8080</port>
    <nonProxyHosts>localhost|*.my.corporate.proxy</nonProxyHosts>
</proxy>

2 个答案:

答案 0 :(得分:8)

在经过一些试验和错误后,我终于想出了如何做到这一点。我希望这会有助于其他许多人。下面是我更新的settings.xml。对于Eclipse中的任何项目,maven首先尝试从我的公司镜像下载libs。只有当它无法在那里找到它时,才能从中央仓库获得它。

<servers>
    <server>
        <id>central-mirror</id>
        <username>myusername</username>
        <password>mypassword</password>
        <filePermissions>664</filePermissions>
        <directoryPermissions>775</directoryPermissions>
        <configuration></configuration>
    </server>
</servers>

<mirrors>
    <mirror>
        <id>central-mirror</id>
        <url>https://url.to.my/mirror</url>
        <mirrorOf>*,!central</mirrorOf>
    </mirror>
</mirrors>


<proxies>
    <proxy>
    <id>proxy</id>
    <active>true</active>
    <protocol>http</protocol>
    <host>my.corporate.proxy</host>
    <port>8080</port>
    <nonProxyHosts>localhost|*.my.corporate.proxy</nonProxyHosts>
</proxy>

<profiles>
  <profile>
    <activeByDefault>true</activeByDefault>
    <repositories>
        <repository>
            <id>central-mirror</id>
            <url>https://url.to.my/mirror</url>
        </repository>
    </repositories>
  </profile>
</profiles

答案 1 :(得分:0)

我有类似的情况,如果企业仓库中没有工件,那么它应该default to global repo

我在原始settings.xml中进行了两处更改 -

  1. 为您的网络定义<proxy>标记
  2. 如果mirrorOf属性为*,则将其更改为repo ID