导入Maven Project出现各种Maven错误

最近接触的新的project都是Maven project,由于之前没有使用过Maven,发现导入的工程每个都有错误,折腾了好久都没能完全解决,不过现在已经解决了部分,总结一下最常见的错误:
1.build failure
可以通过环境配置解决,首先确保已经在Window-Preferences-Maven中添加了Maven路径和settings.xml路径,其次,在settings.xml中添加元素。最后,要确保所有的具有以来关系的工程都已经被load下来。如果还是不行,可以尝试将本地仓库清空,然后重新run pom.xml,goal是clean install.

这个时候build应该可以成功了,但是仍然有非常多的编译错误,甚至还有红色叹号,常见的错误:
2.Could not calculate build plan: Plugin org.apache.maven.plugins: maven-resources-plugin:2.4.3 or one of its dependencies could not be resolved.
3.Plugin execution not covered by lifecycle configuration:...

在网上找了好多解决办法,大部分都说可以在pom.xml中添加一段的配置,但是在我的工程里怎么试都不行。

最后决定更新一下m2eclipse的版本,我最初安装的版本是1.0的,用的地址是
http://download.eclipse.org/technology/m2e/releases/1.0
然后我就更新到了1.2,用的地址是
http://download.eclipse.org/technology/m2e/releases/1.2

p.s.eclipse下面插件的更新是不需要卸载就可以直接安装新的版本吗? 安装m2eclipse 1.2我就是直接安装的,而且是可以正常工作的。

再修改一下工程java build path里面的JRE System Library,竟然发现大部分的错误都没了,看来还是版本的原因,不过还有一些project还有错误,需要继续改,其他可以尝试的办法有:

1.如果发现右键工程Maven->Update project...不管用或者报错的话,很可能需要修改Maven配置文件中的mirror,我添加了一个新的mirror:

UK
UK Central
http://uk.maven.org/maven2
central

之后,Maven->Update project就可以用了。
2.如果Maven->Update project还是不能去除编译错误,可以尝试重新load一遍这个工程。
3.如果在Markers中发现工程的错误是Facted Project Problem "Target runtime Apache ... is not defined",可以修改工程目录.settings->org.eclipse.wst.common.project.facet.core.xml,去掉facted-project元素里面的内容再更新工程。

*********************************************************************

切换了一次工作空间之后需要重新load所有的工程,又发现build的时候总是报错:
1.在命令行模式下build可以成功,但是在eclipse下面总是出现:
--------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] Compilation failure
Faliure executing javac, but could not parse the error:
The system cannot find the path specified.

折腾了好久,后来想起来是忘记切换工作空间之后需要重新配置一遍maven,在Windows->Preference->Maven下指定Maven配置文件的路径。或者可以在build的时候打开debug,查看javac路径是否存在。

2. [ERROR] Non-resolvable parent POM: Failure to find com... in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central
因为之前我添加了两个mirror在配置文件里,默认的是使用第一个,所以我需要暂时先去掉UK这个mirror,还有如果eclipse下面不能build成功的话,可以尝试在命令行模式下再试一次。

你可能感兴趣的:(java)