问题:最近做java项目,需要使用公司自己搭建的maven仓库,但是有些包公司的仓库中没有,导致下载失败。
分析如下:
pom.xml中引入的配置:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
我需要下载的包的仓库地址在pom文件中配置了,就是 https://repo.e-iceblue.cn/repository/maven-public/,这个仓库,
但是为什么下载的时候没有起作用呢?问题就出在setting中如下部分:
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://server.dev.****.com:8081/nexus/content/groups/public/</url>
</mirror>
mirrorof标签,这个标签如果设置为*,就说明整个工程只能使用settings中配置的地址。
解决:
在settings文件的mirrorof标签中内容改成(!com.e-iceblue,*),括号里面的内容,不包括括号,这样做的意思是,!com.e-iceblue意思是把com.e-iceblue这个仓库排除在外,依然把公司的仓库作为唯一仓库,这样就可以使用settings文件中配置的仓库和pom.xml配置的仓库都生效。