6

我有一些个人项目和一些公司项目。企业项目使用镜像的企业 SVN 存储库来获取 Maven 依赖项。我想以这样一种方式配置我的 settings.xml,以便首先根据我的公司镜像检查依赖项。仅当此处未找到依赖项时(对于我的个人项目),它才应检查与我的公司回购镜像的原始“中央”回购。这可能吗。下面是我现在拥有的一个片段,但在需要时它没有击中“中央”回购。谢谢。

<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>

4

2 回答 2

9

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

<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
于 2013-04-29T14:45:41.793 回答
0

好吧,我有一个类似的情况,如果公司回购中没有工件,那么它应该default to global repo

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

  1. 为您的网络定义<proxy>标签
  2. 如果 mirrorOf 属性是*然后将其更改为 repo ID
于 2016-02-18T11:37:09.697 回答