繁体   English   中英

使用多个公司存储库

[英]Using multiple corporate repositories

昨天我问到使用一个exlusive maven存储库,现在我需要使用2,它们都是私有的..所以关于这个链接解释了强制maven使用一个存储库,我该如何指定第二个存储库? 让我们看看,我现在在我的pom.xml中有两个这样的存储库,如果两个存储库中缺少某些存储库,它将搜索公共存储库的依赖关系,如何防止这种情况?

<repositories>
    <repository>
      <id>my-internal-site</id>
      <name>our maven repository</name>
      <url>http://myserver/repo</url>
    </repository>
 <repository>
      <id>my-other-internal-site</id>
      <name>our 2nd maven repository</name>
      <url>http://myserver/repo2</url>
    </repository>
  </repositories>

我需要改变设置xml吗?

<settings>
  ...
  <mirrors>
    <mirror>
      <id>internal-repository</id>
      <name>our maven repository</name>
      <url>http://myserver/repo</url>
      <mirrorOf>my-internal-site,my-other-internal-site</mirrorOf>
    </mirror>
    <mirror>
      <id>my-other-internal-site</id>
      <name>our 2nd maven repository</name>
      <url>http://myserver/repo2</url>
      <mirrorOf>my-internal-site,my-other-internal-site</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

或者以其他方式?

编辑

我知道如果我在settings.xml中指定独占的,我不需要在我的pom.xml中设置存储库。我只是说明一点,所以有人可以更好地回答我的问题..谢谢

您不需要在镜像中复制存储库 - 您所说明的配置对于给定mirrorOf仅选择了一个镜像mirrorOf

镜像替换已定义的存储库,用于给定ID或ID集合( external:*等)。 如果需要添加存储库,则必须在POM或设置中添加存储库元素。

你可能想要这样的东西:

<settings>
  ...
  <profiles>
    <profile>
      <id>second-repo</id>
      <repositories>
        <repository>
          <id>second-repo</id>
          <url>http://myrepo/second-repo</url>
          <!-- add releases / snapshots config as appropriate here -->
        </repository>
      </repositories>
      <!-- duplicate for pluginRepositories here if needed -->
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>second-repo</activeProfile>
  </activeProfiles>
  ...
  <mirrors>
    <mirror>
      <id>corporate-repo</id>
      <url>http://myrepo/my-group</url>
      <mirrorOf>external:*,!second-repo</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

我还是会用:

<settings>
  ...
  <mirrors>
    <mirror>
      <id>internal-repository</id>
      <name>Maven Repository Manager running on repo.mycompany.com</name>
      <url>http://repo.mycompany.com/proxy</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

并在第一个中添加其他内部存储库作为“代理存储库”(大多数存储库管理器可以代理存储库)。

但我想知道你为什么要这样做。 不能所有项目都使用相同的内部存储库吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM