为什么maven在不同repo中存在多个依赖项时使用了错误的存储库?
我有一个settings.xml文件,其中包含以下内容为什么maven在不同repo中存在多个依赖项时使用了错误的存储库?,maven,Maven,我有一个settings.xml文件,其中包含以下内容 <settings> <mirrors> <mirror> <!--This sends everything else to /jpmc-public --> <id>PRIVATE-SNAPSHOT</id> <mirrorOf>PRIVATE-SNAPSHO
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /jpmc-public -->
<id>PRIVATE-SNAPSHOT</id>
<mirrorOf>PRIVATE-SNAPSHOT</mirrorOf>
<url>https://url1</url>
</mirror>
<mirror>
<id>PRVATE</id>
<mirrorOf>PRIVATE</mirrorOf>
<url>https://url2</url>
</mirror>
<mirror>
<id>public</id>
<mirrorOf>*,!PRIVATE,!PRIVATE-SNAPSHOT</mirrorOf>
<url>http://url3</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>local</id>
<pluginRepositories>
<pluginRepository>
<id>public</id>
<url>http://url</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>PRIVATE-SNAPSHOT</id>
<url>https://url1</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>PRIVATE</id>
<url>https://url2</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>public</id>
<url>http://url3</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
</profile>
</profiles>
...
</settings>
私有快照
私有快照
https://url1
PRVATE
私有的
https://url2
公众的
*,!私有的私有快照
http://url3
地方的
公众的
http://url
真的
真的
私有快照
https://url1
假的
真的
私有的
https://url2
真的
假的
公众的
http://url3
真的
假的
...
然后我的pom里有这样的东西
<dependencies>
<dependency>
<groupId>some.group</groupId>
<artifactId>public-lib</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>come.other.group</groupId>
<artifactId>private-lib</artifactId>
<version>${scala.test}</version>
</dependency>
</dependency>
一些
公共图书馆
${version}
来吧,其他人
私人图书馆
${scala.test}
但当我运行它时,它试图从私有回购中获取公共lib,但失败了。如果我编辑设置以删除存储库标记,那么它可以很好地获取公共内容,但无法尝试从公共repo获取私有内容。我怎么能说特定的依赖性来自于特定的回购?一般情况如下:
- 您可以通过
中的错误镜像混淆Maven李>settings.xml
- 在极少数情况下,如果其中一个存储库被破坏,Maven解析会停止
在公司中,通常最好运行Nexus或Artifactory,并向其中添加所有相关的本地和远程存储库。然后,您可以将Nexus/Artifactory作为
设置中的镜像。xml
请扔掉前两个镜像定义,然后再试一次。实际上,我认为我可能错了,我现在正在测试该迭代,请给我一点确认,但这看起来可能已经起作用了。