【发布时间】:2020-03-02 11:16:49
【问题描述】:
规格:Linux Mint 18.3、Eclipse 2019-06、Groovy 2.5.8、Java 11
我启动了一个 Groovy 项目,并在“源文件夹”下创建了一个包“test”。在测试中,我放置了一个文件“test.groovy”。该文件如下所示:
package test
它有一个可怕的红色盒子里的白色十字。错误信息是:
此行有多个标记: - groovy.lang.MetaClass 类型无法解析。它是从所需的 .class 文件中间接引用的 - groovy.lang.GroovyObject 类型无法解析。它是从所需的 .class 文件中间接引用的
我尝试了多种策略:重新启动 Eclipse、清理项目、删除和放回项目的 JRM。什么都不做。
当我用 Google 搜索时,有一些此错误的案例,但大多数似乎是几年前的,在一个活跃的错误列表中,所以我认为已解决。
有什么想法吗?
注意,根据我的笔记,我在 Gradle 项目中遇到过几次这个问题,通过 Gradle --> Refresh 项目解决了这个问题。但这是一个(纯)Groovy 项目,而不是 Gradle,并且“刷新”选项不可用。
顺便说一句,当我在“问题”中查看这个问题时,错误类型被称为“Java 问题”。
稍后
有人认为原因可能是 Java 11。这是一个有趣的想法。但是,Groovy 2.5.x 本身与 Java 11 并没有不兼容。首先,我在 CLI 上运行它没有问题,并且配置了 Java 11 和 Groovy 2.5.x 的基于 Eclipse 的 Gradle 项目也没有问题,使用 Groovy 作为应用程序和测试文件的语言。当然,至关重要的是,Gradle 包装器选择了它自己的 Groovy 版本,并且在这样的圈子中,用户选择他们自己的 Groovy 版本作为他们的可执行文件作为build.gradle 中的依赖项。所以 Eclipse Groovy 处理被幸运地“绕过”了。
因此我开始怀疑 Groovy-Eclipse 插件可能是罪魁祸首。令人惊讶的是,我对此感到惊讶,我下载并设置了 2019-12 Eclipse 包,完全分开,并尝试在其中创建一个 Groovy 项目。即使多次尝试为此版本的 Eclipse(即here)安装 Groovy-Eclipse 的“发布”和“快照”版本,我仍无法在该 IDE 中启动最简单的 Groovy 项目。
所以我怀疑 Groovy-Eclipse 无法在 Java 11 上正常工作这一理论。唯一的问题是您可能期望找到像 the issues 这样的错误,但什么都没有。
【问题讨论】:
-
尝试使用 java 8。我不确定 groovy 2.5 是否可以使用 java 11。
-
谢谢。我找到了那个链接,没有这样的选项。至于“Java 8”的想法,这很有趣。见附录。