在maven的配置文件~/.m2/settings.xml中,在此配置文件中有mirrorOf指向需要拉取jar的rep地址,一般来说这里配置的都是*。

意思是所有的id都走此rep,但是这样会有一个问题就是,假设自己在自己的pom文件中配置了独立的地址,例如:

<repository>
<id>kyligence</id>
<name>Kyligence Repository</name>
<url>https://repository.kyligence.io/repository/maven-public/
</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>

此时由于全局 * 的匹配,导致此pom的id并不会生效,从而在编译的时候提示jar not found,如果仔细观察会发现堆栈里面提示找不到jar的rep其实是全局配置的rep。

也就是意味着pom自定义的id并没有生效,此时需要修改mirrorOf,从 * 中排除自己的id,也就是从:

<mirrorOf>*</mirrorOf>

变成:

<mirrorOf>*,!kyligence</mirrorOf>

此时全局会忽略掉id为kyligence的请求,将其下发至后续的配置项中。


扫码手机观看或分享: