Eclipse 和 Gradle 类路径不同步:无法解析为类型
Posted
技术标签:
【中文标题】Eclipse 和 Gradle 类路径不同步:无法解析为类型【英文标题】:Eclipse and Gradle classpath out of sync: cannot be resolved to a type 【发布时间】:2015-09-16 13:12:04 【问题描述】:我们的 Eclipse 工作区遇到了一个令人沮丧的问题。这是正在发生的事情的一个高级示例:
项目A -- src/main/java/... -- build.gradle
项目B -- src/main/java/... -- build.gradle
在运行 gradle eclipse
并将项目导入 Eclipse 后,我们偶尔会收到“MyType cannot be resolved to a type”,即使以下情况属实:
整个团队都在发生这种情况,我们无法弄清楚为什么 Eclipse 总是不同步并且有时无法编译。通常解决问题的方法是:
项目 > 在 Eclipse 中清理 gradle cleanEclipse 或 gradle eclipse 重新导入项目 等其他说明:
使用 Gradle 2.2.1 版 发生在 Eclipse Luna 和 Eclipse Mars 中 使用 JDK 8在 Eclipse 中是否有其他人在 Gradle 项目中遇到过这些类型的编译问题?
【问题讨论】:
另外,请使用您的build.gradles
。
@Jared Burrows,这应该是建设性的评论吗?当我不为 android 开发时,我不确定为什么要使用 Android Studio。另外,我不使用 IntelliJ,因为我需要的插件在 Eclipse 中。
在 Eclipse 中刷新项目 (F5) 就可以了?
@Robert,很遗憾没有。刷新似乎没有任何改变。
@thedude19 这不仅仅是建设性的。您正在使用Gradle
和Gradle
的构建结构,为什么不使用自然支持它的IDE
?你在Eclipse
中需要哪些插件在Intellij
中没有或无法获得?
【参考方案1】:
此类问题的一个来源可能是让 Gradle 生成 Eclipse 项目元数据/设置文件(运行 gradle eclipse
会得到什么)。我知道 Maven 和 Gradle 团队确实希望他们的工具(Maven 或 Gradle)能够生成这些东西,但众所周知,他们的工作并不理想。例如,我上次使用 Gradle 时,它配置了 .classpath 以使用硬编码的 JRE 库路径,而不是首选的执行环境。生成文件这种糟糕的工作让开发人员头疼。
相反,Eclipse 建议手动配置您的项目(大部分情况下),只让 Gradle 管理其 Classpath Container,然后将 Eclipse .project、.classpath 和 .settings 文件/文件夹检入您的 SCM (svn、git 等)。这样,将项目签出到工作区的过程是自动的,不需要一直运行 gradle eclipse
或 mvn eclipse:eclipse
。
这就是 Eclipse 项目最初的设计和管理方式,而且效果很好。我曾在非常大的项目(Eclipse 中的 100 多个独立项目和数十个开发人员)中使用过类似的设置。它还减少了从零到运行应用程序的步骤数。
这是 Maven/Gradle 和 Eclipse 之间的哲学差异之一;归根结底,IMO,IDE 应该管理它的东西,构建/依赖工具应该不碍事。
尝试在您的项目配置中手动获取正确的内容,然后签入这些文件 - 看看它是否不能缓解您的团队在这方面面临的头疼问题。
【讨论】:
感谢您的精彩回答。我今天实际上正在尝试这个。 为我的团队实施了更改。它运行良好。谢谢! 从命令行运行 mvn eclipse:eclipse,然后右键单击 Eclipse 中的项目 -> Refresh 对我有用。竖起大拇指 eclipse:eclipse 任务已退役和过时,这是有充分理由的。在任何情况下我都不会使用它。另外,由于 eclipse:eclipse 已经有一段时间没有维护了,所以它根本不可能与较新版本的 Eclipse 一起工作。以上是关于Eclipse 和 Gradle 类路径不同步:无法解析为类型的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse ADT 项目中的 Android 数据绑定(无 gradle)
android studio的 gradle 依赖同步错误解决方法