maven build 失败之重复引用

2018-05-07  本文已影响0人  Jacky_2c9f

今天接手一个旧的Maven 项目,需要在本地搭建开发环境。一开始还挺顺利的,但也不是没有问题,遇到的都是缺少 Jar 包或者缺少 POM.xml 文件,只要从公司内部服务器上取即可。考虑到网络带宽和速度,公司在自己的服务器上搭建了Maven 仓库,方便员工下载使用。当然,如果是个人,完全可以自己直接从 Maven 官方仓库下载:

http://repo.maven.apache.org/maven2/

但如果公司内网禁止直接访问,而公司服务器的仓库上又恰好没有,那就需要自己去官网下。

Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.196.215] failed: Connection refused: connect -> [Help 1]

公司内部有仓库,可以在项目的pom.xml配置文件设置repositories即可,有兴趣可以另起一篇,这里不再赘述。

好了,言归正传,遇到的问题如下:

Failed to execute goal on project sg-ecare-service: Could not resolve dependencies for project com.aiait.cs:sg-ecare-service:jar:2.0.0: Failed to collect dependencies at jasperreports:jasperreports:jar:3.5.0 -> commons-collections:commons-collections:jar:3.2.1.redhat-7: Failed to read artifact descriptor for commons-collections:commons-collections:jar:3.2.1.redhat-7: Could not transfer artifact org.apache.commons:commons-parent:pom:22-redhat-2 from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.196.215] failed: Connection refused: connect -> [Help 1]

从加粗的描述可以看出,找不到commons-collections:jar:3.2.1下的依赖包commons-parent:pom:22-redhat-2, 那么,往回找,看看pom.xml 里面的commons-collections:jar,方便定位该包所在路径。

如上图,版本是3.1,跟错误描述的3.2.1版本并不一致,那么,可以肯定commons-collections:jar被重复引用了。而且,该版本并非我们所需,那么,我们需要找到是谁引用了,然后将其排除。看以上错误描述继续往回找,可以发现是这个包引用了: jasperreports:jasperreports:jar:3.5.0

打开其 pom.xml文件,确实如此。

那么,此时我们就需要将这个不需要的依赖包给排除掉,具体设置如下:

至此,重新输入maven install 命令,一路顺风顺水,问题搞定。

以上,给遇到类似问题的童鞋一点思路。

上一篇下一篇

猜你喜欢

热点阅读