我知道M2eclipse插件存在各种已知问题,我想这只是其中之一。希望有人知道解决方案或解决方法。
我们在工作区中有30个项目,但为了清晰起见,假设只有2个:A en B。
B包含A作为B的pom.xml中的依赖项。 我们遇到的问题是在eclipse中无法找到A的类,因此会出现编译错误。但是,如果你'安装'A将它部署在本地存储库和关闭项目A,那么一切都很好;没有编译错误。所以,如果项目中存在A,M2Eclipse似乎无法在eclipse中正确设置类路径。
为了使事情变得更奇怪,我们还有项目C也依赖于(与B完全相同)项目A,但这里我们没有编译错误。我们无法识别项目B或C之间的任何有意义的差异;如上所述,他们以同样的方式包括A.
感谢您的帮助, 斯泰恩
P.S。我正在使用插件的版本0.10.2.20100623
答案 0 :(得分:2)
之前我曾经历过这种行为,过去我单独导入或签出maven项目时发生了这种情况。
先决条件:在签出多模块Maven项目之前,请确保已安装m2extras:update site
首先要尝试:右键单击每个项目并选择Maven - >更新项目配置。该插件可能足够智能,可以检测到它可以在项目之间构建项目引用。
要尝试的第二件事(如果你的30个项目都是一个根目录下的子模块):这将是最简单的,因为你可以使用m2eclipse的SCM集成在根pom上执行“Checkout as Maven Project ...” 。 M2eclipse将为superpom和每个子模块创建一个项目,并适当地构建项目引用。
尝试第三件事:我尝试在每个项目的项目设置中手动创建项目引用,以反映它们的相互依赖性。这是很多工作,除非你检查你的eclipse .project / .settings(eww),否则必须为每个工作副本单独完成。
答案 1 :(得分:2)
分辨
最后,经过几个小时的痛苦,我找到了原因。 我专注于.classpath和.settings文件,但问题出在.project文件中。项目A中的此文件在标记natures中的条目后丢失:<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
添加此解决了问题。