我在使用 SpringSource Tool Suite 时遇到了同样的问题。我正在导入一个从命令行运行良好的现有 Maven 项目。但是,当我使用 import -> Maven -> existing Maven project 导入项目时,项目没有正确导入 import 并且我无法将 maven 托管依赖库添加到构建路径。
如果我从命令行运行 mvn install 项目构建成功。如果我运行 mvn eclipse:eclipse 然后导入到 STS 中,那么一切都按预期工作,当然每次更新 pom 时我都必须重新运行它,这是不可取的。
我通过运行 mvn eclipse:eclipse 然后手动更新 .classpath 以消除 eclipse:eclipse 添加的 M2_REPO 依赖项并添加 m2eclipse 依赖项来解决它:
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
然后我导入了现有的 Maven 项目,它按预期工作。
这是一个 hack,我不确定在使用 m2eclipse 时运行 eclipse:ecplise 会产生什么其他后果。但它至少让我可以编译我的项目,这样我就可以开始编码了。
2013 年 1 月 4 日编辑
我在上面发布的解决方法将暂时起作用,我从未发现任何负面影响。但是,我现在已经遇到过几次这个问题,每次问题都是 maven 接受 pom 的某些部分,但 m2eclipse barfs 开启。
因此,我建议您将部分 pom 1 1 删除,直到您可以成功地对项目进行 mavenize。只需在每次 pom 编辑后继续运行 maven -> update configuration 直到它正常工作。我通常从删除插件配置标签块开始,从最可疑的(即最复杂的)开始。
一旦它正确 mavenizes,您可以恢复 pom,它应该仍然可以按预期工作。
在我开始运行后,我会研究有问题的配置以试图找出“正确”的修复方法是什么(无论如何,根据 m2eclipse)。
希望这种方法能带来永久的解决方案,而不是满足于一个骇人听闻的解决方法!