Maven clean + build导致Eclipse中的项目在Eclipse中清除之前显示错误

Enr*_*ico 22 java eclipse maven

我们的开发环境中出现了一种非常奇怪的行为,这与我们在不同操作系统上的所有开发人员一致.

我们在开发环境中有大约20多个Maven(3.0.4)项目,所有这些项目都是Eclipse(Indigo)中的开放项目,其子类型m2e(0.12.0)像往常一样处理依赖项.(m2e 1.0给我们带来的问题多于解决方案)

在我们所有20多个项目中,有一个项目表现得很奇怪.当mvn clean install在该项目上执行时,即使Maven 成功通过,它也会导致4个java文件(在单元测试中,如果它有任何区别)在Eclipse中显示错误.

错误的类型为"SomeNameOfClass无法解析为类型",尽管打开文件并在错误的类引用上按F3(打开声明)会发现该类没有问题.

mvn clean是问题,如果我们只是运行mvn install这不会发生.

Eclipse的项目 - > Clean清除错误,一切正常.

不是一个操作问题,实际上阻止我工作或类似的东西,我可以简单地通过在Eclipse中清理来解决它,我只是讨厌每次都这样做,我不能忍受我的项目中的红色X,即使他们没有影响.

我真的很好奇为什么会发生这种情况,为什么特别是那4个类呢?为什么为什么?:)

GET*_*Tah 22

我们前一段时间遇到过完全相同的问题.我们有超过20个项目给出了同样的错误.从我们进行的调查中,我们得出结论,当maven clean install运行时,eclipse会丢失对类文件的跟踪,并认为其中一些是未定义的.我们的解决方案是在命令行发出以下命令:

mvn eclipse:clean
mvn clean install
mvn eclipse:eclipse
Run Code Online (Sandbox Code Playgroud)

  • @Enrico我认为在版本控制下进行eclipse设置并不是一个好主意.您应该只将源代码与源代码控制下的pom文件一起保存. (7认同)
  • 如果使用m2e或m2eclipse mvn eclipse:...不应该再使用了.更好的方法是在Maven - Context菜单中执行Update-Project-Configuration. (6认同)
  • @GETah虽然您的建议可以消除错误,但它会损坏.project和.classpath。这些文件在我们的源代码管理中,因此在每次构建时都不要更改它们。我想我可以做到这一点,并且在一切执行完`git checkout-.project`和`git checkout-.classpath`之后,但这似乎有点麻烦。 (2认同)
  • @GETah在源代码控制中使用.project和.classpath同步每个人的设置,它允许我们的非java精明的开发人员简单地导入项目并使一切正常工作.. (2认同)