在idea中修改pom.xml文件,添加各种工程依赖的jar,一直没有问题,但有一天突然添加了一个jbpm3的依赖,发现一直报“Dependency 'xxx' not found",但在maven的仓库中可以找到的,就觉得奇怪了。
经过一段时间的了解后,主要和几个文件有关:
(1)、maven的settings.xml文件
如果你设置了镜像代理,但不巧的是设置成了如下内容(网上有帖子就要求这么设置aliyun的镜像的):
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf> //最好不要*,这就表示所有的仓库只使用aliyun的镜像,实际是aliyun只镜像了central,所以这里写成central
</mirror>
(2)、以我们上面的为例,jbpm3在maven repository可以查到,但查找的结果如下所示(注意红框,它表示这个jar在哪个仓库中):
上面明确表示,这个jar包在JBoss Releases的仓库,而不是在常见的Central中,如下图所示:
默认情况下,只会从Central中下载,而镜像一般只会从central库拉取,所以就会导致上面的”Dependency 'xxxx‘ not found"情况了。
(3)、解决方法
原因都知道了,就好办了。一种是在settings.xml中添加对应的仓库,另一种是在pom.xml直接添加额外的仓库。推荐第二种,如下(在</project>之前添加):
然后重新导入一下,理论上应该解决了。第一种方法就是在settings.xml中添加如下镜像:<repositories> <repository> <id>JBoss repository</id> <url>https://repository.jboss.org/nexus/content/repositories/releases/</url> </repository> </repositories>
<mirror>
<id>jboss</id>
</mirror><name>jboss</name>
<url>https://repository.jboss.org/nexus/content/repositories/releases/</url>
<mirrorOf>JBoss Releases</mirrorOf>
希望对你有帮助。