Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用多个公司存储库_Java_Eclipse_Maven 2 - Fatal编程技术网

Java 使用多个公司存储库

Java 使用多个公司存储库,java,eclipse,maven-2,Java,Eclipse,Maven 2,昨天我问起如何使用exlusive maven存储库,现在我需要使用2,它们都是私有的。。那么关于强制maven使用一个存储库的解释,我如何指定第二个存储库呢?举个例子,我现在在pom.xml中有两个这样的存储库,如果这两个存储库中缺少什么东西,它会去搜索公共存储库上的依赖项,如何防止这种情况 <repositories> <repository> <id>my-internal-site</id> <name

昨天我问起如何使用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>

我的内部网站
我们的maven存储库
http://myserver/repo
我的另一个内部站点
我们的第二个maven存储库
http://myserver/repo2
我是否需要将设置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>

...
内部存储库
我们的maven存储库
http://myserver/repo
我的内部站点,我的其他内部站点
我的另一个内部站点
我们的第二个maven存储库
http://myserver/repo2
我的内部站点,我的其他内部站点
...
还是以其他方式

编辑

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

我仍然会使用:

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

...
内部存储库
在repo.mycompany.com上运行的Maven存储库管理器
http://repo.mycompany.com/proxy
*
...
并在第一个内部存储库中添加另一个内部存储库作为“代理存储库”(大多数存储库管理员可以代理存储库)


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

您不需要在镜像中复制存储库-如果只为给定的
mirrorOf
选择其中一个镜像,则说明的配置将无效

镜像替换已定义的存储库,可以是给定ID或ID集合(
外部:
等)。如果需要添加存储库,则必须在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>

...
第二次回购
第二次回购
http://myrepo/second-repo
第二次回购
...
公司回购
http://myrepo/my-group
外部:*,!第二次回购
...

@Pascal Thivent
但我想知道你为什么要这么做。难道所有的项目都不能使用同一个内部存储库吗?
如果你问我,当然可以,但没有人这样做:D我只是得到了如何做的更新。。你知道我在哪里可以读到更多关于代理存储库的信息吗,到目前为止我还没有用谷歌搜索任何有用的东西。。我可以从pom或设置中添加代理存储库而不是使用gui吗?@c0mrade我已经添加了到Nexus文档的链接(您正在使用Nexus,对吗?)。也许我不清楚,但这是纯Nexus配置,也就是说,纯Nexus的东西,你不能在pom或设置级别进行配置(至少不是我建议的)。不,我们使用Artifactory(),除了从存储库读取之外,我没有权限,其他人就是这么做的。。我现在负责成功的构建。。据我所知。。我需要引用2个存储库,然后在settings.xml中的mirrorOf中添加它们的id(以逗号分隔)?