[java][54]解决导入maven工程出错问题
从服务器用git下的maven工程,导入eclipse后出错,错误描述如下:
1. pom.xml报错,工程里各种缺包。
2. 由1.的报错,找到了错误的根源:
工程D的缺包 依赖2个工程 P1 和 P2,这2个依赖工程也已导入。
手动添加这2个依赖工程,但每次对D做update maven project后,下图所示的最后2行依赖自动消失:
同样,也尝试对.settings 文件夹下面的 .component文件手动添加P1, P2这2个dependencies, 但一更新maven project, 这2个依赖也丢失了。
笔者尝试了许多方法,如下:
1. 怀疑自己导入maven工程的方法错误
参考:Eclipse导入Maven项目详解(新手初学):
https://blog.****.net/w12345_ww/article/details/52094756
2. pom.xml的packaging选择war
参考:https://blog.****.net/achenyuan/article/details/78434848
3. eclipse的project -> clean
D工程的java build path -> projects添加依赖的2个projects: P1,P2
4.
(1)win -> cmd窗口 -> cd到D工程所在位置 ->
输入:mvn package –DskipTests 目的应该是更新此目录下的所有jar包
-> 报错:Failed to execute goal on project D
(2)参考:https://www.oschina.net/question/143808_156035
需要把parent工程,也就是package是pom的那个工程先install一下。
就是pom文件里面有<packaging>war</packaging>这个标签,标签内容为pom的那个工程
基于此,对P1工程先clean再install,cd到P1下面:mvn clean install,仍然报错
最终解决方案
1. 原始
maven的安装包下有2个settings.xml
1)settings.xml,系统默认选它。
2)D使用的是settings_lala.xml,eclipse中 maven选的是它。
猜测:基于此,上面通过cmd折腾mvn build,mvn clean,mvn install等都没用,应是因为windows默认会选择settings.xml
2. 解决
修改文件名:
将原【settings.xml】-> 【settings.bak.xml】随便命名的
将原【settings_lala.xml】-> 【settings.xml】
如下图:
再在eclipse中选择settings.xml,等同于原来的settings_lala.xml,如下图:
我的天,困惑1天多的问题解决了,不再报错了!!!
总结
问题线路:
1. 发现.settings文件夹下的 XXX.component文件,更新后缺东西
2. 发现缺少P1和P2依赖
3. 发现通过DeploymentAssembly和Java Build Path,手动添加P1和P2依赖也是更新后丢失
根源:
maven-repo下缺少P1和P2相关依赖
解决:
settings.xml没配好。
但是错误是突然出现的,之前配的settings_lala.xml没问题--晕倒