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