当我尝试使用Maven构建项目时,我遇到了问题。我的网络上有一个nexus服务器,所有的依赖都来自那里。它有一个中央存储库,它是外部依赖项的官方maven2存储库的代理,以及一个存储所有内部库的存储库。
好吧,让我们跳到这个问题。我的.m2文件夹中有以下配置:
<settings>
<mirrors>
<mirror>
<id>treto</id>
<name>Tre-to Libs</name>
<url>http://10.163.40.41:8081/nexus/content/repositories/treto-libs/</url>
<mirrorOf>treto-libs,br.jus.treto</mirrorOf>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Manager</name>
<url>http://10.163.40.41:8081/nexus/content/repositories/central/</url>
<mirrorOf>central,!treto-libs,!br.jus.treto</mirrorOf>
</mirror>
</mirrors>
...
</settings>
在我的项目的pom上,我有以下依赖项,我从nexus接口复制的代码:
<dependencies>
<dependency>
<groupId>br.jus.treto</groupId>
<artifactId>tre-auth</artifactId>
<version>0.120</version>
</dependency>
</dependencies>
这个依赖项应该从“treto”镜像下载,但是Maven总是试图从没有那种依赖性的中央镜像中获取它。
问题是,我在配置上缺少什么?
答案 0 :(得分:1)
你应该在你的pom.xml或settings.xml(在一个配置文件中)中有这种声明:
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>treto</id>
<name>Tre-to Libs</name>
<url>http://10.163.40.41:8081/nexus/content/repositories/treto-libs/</url>
</repository>
</repositories>
然后,你的镜子应该是:
<mirrors>
<mirror>
<id>central</id>
<name>Maven Repository Manager</name>
<url>http://10.163.40.41:8081/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
你可以告诉maven使用你的镜子除了treto之外的所有东西:
<mirrorOf>*,!treto</mirrorOf>
或仅将其用于中央
<mirrorOf>central</mirrorOf>
如果这不起作用,请发布完整的pom和设置;);)
答案 1 :(得分:0)
是否在您的项目或设置中声明了具有ID(treto-libs,br.jus.treto)的存储库? 因为你说mirror必须声明那些id。