我遇到了拉入新版本库的问题,这个库位于不同的存储库中。我相信我必须更新我的settings.xml
和我的父级pom.xml
,它指定了新版本。使用多个Maven镜像将不同的jar版本拉入项目
目前我settings.xml
读取类似如下:
<settings>
<mirrors>
<mirror>
<id>nexus</id>
<url>http://serenity.gm.edu/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>mods</id>
<url>http://7.169.72.8:8081/nexus/content/repositories/releases/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>default</id>
<repositories>
<repository>
<id>mod-thirdparty</id>
<url>http://7.169.72.8:8081/nexus/content/repositories/thridparty/</url>
</repository>
<repository>
<id>mod-snapshots</id>
<url>http://7.169.72.8:8081/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>Tomcat</id>
<username>admin</username>
<password>xxx</password>
</server>
</servers>
默认镜子在那里一切都被从拉是宁静。我试图从7.169.72.8拉入一个自定义库mod3.2
,但版本2.3不断从宁静中拉进来。我尝试了一些<mirrorOf>
设置,例如*,!central
,但没有成功。
我的父母pom.xml
非常简单,定义了一系列模块,过程和全局依赖关系。以下是感兴趣的项目(显示时间太长)。
<project ...>
...
<distributionManagement>
<repository>
<id>releases</id>
<name>mod2-releases</name>
<url>http://7.169.72.8:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>mod2-snapshots</name>
<url>http://7.169.72.8:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<properties>
...
<mod2.version>3.2</mod2.version>
...
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>mod2.commons</groupId>
<artifactId>mod2.commons.lang</groupId>
<version>${mod2.version}</version>
</dependency>
<dependency>
<groupId>mod2.commons</groupId>
<artifactId>mod2.commons.audit</groupId>
<version>${mod2.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
总括来说 - 我想从7.169.72.8
版本mod2的3.2版本,但我可以在mod2的2.3版本从serenity
回购拉。谢谢你的帮助。
Maven没有理由在这里寻找版本2.3,因为版本明确3.2。虽然配置文件'default'没有被激活,在设置中应该有一个'默认 activeProfile> activeProfiles>'。也就是说,即使这个配置文件没有被激活,Maven也应该查看安静回购,失败,然后查看7.169.72.8(或者反过来,不知道镜像是否有顺序)。 –
Tunaki
正是我的想法。由于pom明确地说3.2,为什么它从'宁静'(即2.3) – jiveturkey
拉出来某个地方,版本正在被重新定义。你的依赖在一个'dependencyManagement'里面,所以也许一个使用它的子项目将版本重新定义为2.3?或者有一个系统属性设置'mod2.version'? – Tunaki