错误日志
Could not resolve dependencies for project xx.war
Failed to read artifact descriptor for xx.jar
The POM for xx.jar is missing, no dependency information available
Failed to collect dependencies at xx.jar
Could not find artifact xxx.jar
背景
报错是在对当前工程进行mvn package时出现,工程结构是,当前工程和其依赖的工程,都有一个共同的parent工程
分析解决
- 看字面意思,是缺失依赖工程的jar包,maven下载jar包失败,于是在.m2\repository文件夹下确认,发现是有这个依赖jar包的。
- 上网搜索,大部分都是 mvn clean mvn -U install ,于是照做,但是没有任何用处,直接手动将该依赖jar包目录从.m2\repository中删除,再编译当前工程,同样报错
- 有的说是nexus私服没有配置好,但是这个依赖jar并不需要从私服下载的,而是依赖工程直接mvn install到本地的.m2\repository文件夹中。
当前工程和依赖工程的pom.xml中都有个parent
<parent> <artifactId>XXX-XXX-framework</artifactId> <groupId>com.XXXX</groupId> <version>1.0-SNAPSHOT</version> </parent>
在.m2\repository中检查parent工程的jar包,果然发现问题,仅仅只是个空路径,里面没有jar包,于是修改编译脚本,最先将这个parent工程mvn -U install,然后再 mvn -U install 依赖工程,最后再mvn package 当前工程,然后成功,问题解决。
小结
开始陷入误区,一直在寻找报错的依赖jar包,因为这个jar包的名字在错误中最先出现,而且在错误日志中出现的也最多,但是真正出问题的jar包其实是最后一句日志中提到的Could not find artifact xxx.jar