今天卡了很久的问题,最后终于给我解决了。
问题
Java Spring 项目使用 maven 构建项目和引用依赖,今天想引入Github 上的第三方库,就需要使用 jitpack.io 这一代理仓库。
当我在 pom.xml 里引入了:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://www.jitpack.io</url>
</repository>
</repositories>
以及对应的依赖:
<dependency>
<groupId>com.github.grumlimited</groupId>
<artifactId>geocalc</artifactId>
<version>0.6</version>
</dependency>
就一直报以下两种错:
Could not find artifact com.github.xxx in nexus-aliyun
Cannot resolve com.github.xxx
解决
在互联网遨游之后得到能解决我当前问题的答案
在当前项目的maven对应的 setting.xml 中,修改一下镜像的配置,即:
原本是
<mirrorOf>*</mirrorOf>
改为:
<mirrorOf>*,!jitpack.io</mirrorOf>
也就是加上
, ! + 对应的代理仓库id
意思就是在加载依赖的时候如果遇到该id就不从当前镜像加载。在这个例子中,这个bug的来源是因为 aliyun 没有 jitpack 的依赖,加上这句之后,以后遇到 jitpack 就不会从 aliyun 中加载而使得 pom.xml 中的 repositories 标签生效。
加上之后再reload下项目,就解决了。