我们的Eclipse工作区遇到了令人沮丧的问题。以下是正在发生的事情的高级示例:
项目A
- src / main / java / ...
- build.gradle
项目B
- src / main / java / ...
- build.gradle
在运行gradle eclipse
并将项目导入Eclipse之后,我们偶尔会得到“MyType”无法解析为类型'即使以下情况属实:
整个团队都在发生这种情况,我们无法弄清楚为什么Eclipse会不断同步而无法不时编译。通常解决问题的方法是:
其他说明:
有没有其他人在使用Gradle项目的Eclipse中遇到过这些类型的编译问题?
答案 0 :(得分:6)
此类问题的一个原因可能是让Gradle生成Eclipse项目元数据/设置文件(通过运行gradle eclipse
得到的)。我知道Maven和Gradle团队真的希望他们的工具(Maven或Gradle)能够生成这些东西,但是他们出了名的做法并不理想。例如,我上次使用Gradle时,它将.classpath配置为使用硬编码的JRE库路径而不是首选的执行环境。这种生成文件的糟糕工作会让开发人员感到头疼。
相反,Eclipse建议手动配置项目(大多数情况下),只让Gradle管理其Classpath容器,然后检入Eclipse .project,.classpath和.settings文件/文件夹到SCM中(svn,git等)。这样,将项目签出到工作区的过程是自动进行的,不需要一直运行gradle eclipse
或mvn eclipse:eclipse
。
这就是Eclipse项目最初设计和打算管理的方式,而且效果非常好。我曾在非常大的项目(Eclipse中有100多个独立项目和数十个开发人员)中使用过类似的设置。它还减少了从零到运行应用程序的步骤数。
这是Maven / Gradle和Eclipse之间的哲学差异之一;当它归结为它时,IMO,IDE应该管理它的东西,而构建/依赖工具应该不受影响。
尝试在项目配置中手动完成任务,然后检查这些文件 - 看看它是否能减轻团队在这个领域面临的麻烦。