最近接触了一个机器人的项目,源码通过maven实现jar包管理,对方开发商在建立代码的本地构建了局域网内的maven本地仓库,我拿到源码,在我们自己公司的本地环境进行部署发现,很多的依赖缺失,虽然jar包都存在,通过整理发现,一些jar包的pom文件指向他们公司的本地maven仓库,所以我就一个一个的找删除然后通过maven重新下载,现在问题还在解决当中,有些心得当笔记,记录一下
1、注意仓库问题,任何错误都来源于仓库,注意仓库的更新,尤其是pom文件,尤其是在建立本地局域网仓库时pom很有可能指向本
地局域网仓库,遇到相应的包出现问题时,找到相应的包的位置,删除原包,让maven重新下载匹配
2、当包缺少可以通过mvn -install命令下载,从依赖在找依赖
经过几天的琢磨,终于解决了missing artifact的错误,解决办法如下:
1、把pom文件中的所有依赖全部删除,一个一个的往里添加,最后发现,有两个依赖添加之后就会出现所有依赖包missing
2、在本地依赖库中找到那两个jar包,发现包存在,在看jar包的pom文件发现,他的设置里有指向到本地仓库的依赖(此jar包为本地另一项目编译的jar包回传至本地仓库,生成的pom文件,但是由于我网络环境的变化,无法找到本地仓库地址)
3、将这两个指向本地仓库的pom文件删除(删除之前,将这两个jar包pom文件中的关于此jar包的依赖拷入到目前项目的pom文件中),利用mvn install:install-file -Dfile={filepath} -DgroupId={groupid} -DartifactId={artifactid} -Dversion={version} -Dpackaging=jar命令,重新生成这个两个jar包的pom文件。
此时,项目pom文件中的missing artifact错误消失。最后项目依旧报错,发现spring的包有冲突,同时用了3.0.2版本和3.0.5版本,注释3.0.2版本的依赖,解决问题。