gpt4 book ai didi

java - Eclipse 和 Gradle 类路径不同步 : cannot be resolved to a type

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:15 26 4
gpt4 key购买 nike

我们的 Eclipse 工作区遇到了一个令人沮丧的问题。这是正在发生的事情的高级示例:

项目A
-- 源代码/main/java/...
-- 构建.gradle

项目B
-- 源代码/main/java/...
-- 构建.gradle

运行 gradle eclipse 并将项目导入 Eclipse 后,我们偶尔会得到“MyType cannot be resolved to a type”,即使以下情况是正确的:

  • 我们的项目在它们的类路径上有 Gradle 库容器
  • 项目在其 Gradle 容器中具有正确的工作区项目
  • 诸如 CTRL + Click 之类的东西可以从显示有红色下划线的类型(即编译错误)中工作,这意味着 Eclipse 确切地知道如何获取这些类型,但编译器找不到它们
  • 命令行 Gradle 构建按预期工作

整个团队都在发生这种情况,我们无法弄清楚为什么 Eclipse 总是不同步并且时不时无法编译。通常解决问题的是以下组合:

  • 项目 > 在 Eclipse 中清理
  • Gradle cleanEclipse 或 gradle eclipse
  • 重新导入项目
  • 等等

其他说明:

  • 使用 Gradle 版本 2.2.1
  • 发生在 Eclipse Luna 和 Eclipse Mars 上
  • 使用 JDK 8

有没有其他人在 Eclipse 和 Gradle 项目中遇到过这些类型的编译问题?

最佳答案

此类问题的一个来源可能是让 Gradle 生成 Eclipse 项目元数据/设置文件(您通过运行 gradle eclipse 获得的文件)。我知道 Maven 和 Gradle 团队确实希望他们的工具(Maven 或 Gradle)能够生成这些东西,但众所周知,他们做得不太理想。例如,上次我使用 Gradle 时,它​​配置了 .classpath 以使用硬编码的 JRE 库路径,而不是首选的执行环境。这种糟糕的文件生成工作让开发人员很头疼。

相反,Eclipse 建议手动配置您的项目(大部分情况下),只让 Gradle 管理其类路径容器,然后将 Eclipse .project、.classpath 和 .settings 文件/文件夹 checkin 您的 SCM (svn、git 等)。这样,将项目 checkout 到工作区的过程是自动的,不需要一直运行 gradle eclipsemvn eclipse:eclipse

这就是 Eclipse 项目最初设计和管理的方式,而且效果很好。我曾在非常大的项目(Eclipse 中的 100 多个独立项目和数十名开发人员)中使用过这样的设置。它还减少了从零到运行应用程序的步骤数。

这是 Maven/Gradle 和 Eclipse 之间的哲学差异之一;归根结底,IMO,IDE 应该管理它的东西,构建/依赖工具应该远离。

尝试在您的项目配置中手动使事情恰到好处,然后 checkin 这些文件 - 看看它是否不能减轻您的团队在这方面面临的难题。

关于java - Eclipse 和 Gradle 类路径不同步 : cannot be resolved to a type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31126415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com