2010-10-29 118 views
1

我想写我的第一个groovy类。当我这样做时,Eclipse会抱怨语法错误,就像解析Java文件一样。它希望每行末尾都有分号,它不识别“def”关键字等。Groovy在Eclipse中没有正确编译

我同时安装了Groovy 1.7.5和最新的Groovy Eclipse插件。我还将该项目转换为Groovy项目,并在Groovy编辑器中打开该文件。

还有什么可以导致此:

alt text


编辑:
更新 - 甚至当我通过 项目属性>建设者禁用所有的建设者,我还是得到了红线。这是什么原因?我认为建设者负责创建线条和标记?如果我可以找出“谁”确定打开的工作区文件中的错误/问题,我可以停用该功能...

回答

3

中aspect/Groovy的组合并不Eclipse中工作。他们每个人都需要他们自己的建设者,他们彼此不兼容。这将工作的唯一方法是将AspectJ和Groovy代码分离到不同的项目中。

这种组合可以在Maven的工作,因为它可以使用不同的源文件夹不同的编译器。然而,你的方面代码依赖于你的groovy代码(这又取决于你的方面代码)可能存在循环性问题。

+0

arg!这令人沮丧,但它是有道理的。最近,我创建了一个自定义构建器(通过ant完成所有任务)。我很想禁用Groovy构建器,并依靠我们的构建器,但我没有在项目的构建器列表中看到Groovy构建器。令人费解的是,当我禁用所有的建设者时,我仍然得到红线......即使在关闭/重新开始项目之后......这没有任何意义。谁负责这些红线,如果不是建筑商?! – gMale 2010-10-29 18:13:57

+0

对。 Groovy-Eclipse没有Groovy构建器,因为Groovy-Eclipse为Java Builder提供了一个补丁,以便它可以编译groovy和Java代码。 编辑器中的红色波形不是来自构建器,而是来自调解器。每次编辑器更改后,调用者都会调用,执行一种类似于编译的操作,但仅针对当前文件并且不生成类文件。这就是你如何在Java和Groovy文件中获得非常详细的问题报告,即使你没有保存它们。 – 2010-10-30 23:07:52

+0

谢谢。 “Reconciler”应该非常“可以谷歌”。到目前为止,我已经找到[这个协调器上的这个有用的博客](http://blog.darevay.com/2007/11/the-eclipse-reconciler/trackback/)。总的来说,Groovy-Eclipse扩展看起来好像编码很糟糕;仿佛开发人员没有花时间去遵循Eclipse架构。我想只关闭Groovy编辑器的调解器!啧。 – gMale 2010-11-03 02:39:03

3

我以前见过这个。 我通常的解决方法是:

  1. 关闭/重新打开项目。
  2. 确认项目已转换为常规项目
  3. 清理并重建项目。

如果这样不起作用...您可以尝试使用现有源创建新项目。

祝你好运!

+0

试过上面的步骤。它没有工作。这很糟糕。大声笑。当我右键单击该文件并运行它时,它可以正常工作。我创建了一个新的groovy项目,在相同的包下将相同的代码剪切/粘贴到相同的文件名中,并且完美无误地工作。我的另一个项目是maven/aspectj/groovy ......我不知道这个组合是否会让编辑混淆不清。 – gMale 2010-10-29 14:12:39

0

我看到了同样的问题。我尝试创建新的Groovy脚本或类时也遇到错误。我得到一个错误对话框说法:

org.eclipse.jdt.internal.core.CompilationUnit cannot be cast to 
org.codehaus.jdt.groovy.model.GroovyCompilationUnit 

我已经试过了Groovy的源文件移动到未设置为Java源文件夹不同的文件夹,和语法错误突出问题消失了,现在。不过,我仍然必须避免使用“新建> Groovy类”。我只是创建一个普通的文件,并用“.groovy”扩展名来命名,而且看起来没问题。

显然这个插件存在重大问题。

+0

请参阅上面的我的评论。 – 2011-03-15 00:59:21

+0

我的道歉发布这个答案,而不是评论。新手错误(加上我没有特权,但要评论)。我应该补充说,我已更新到最新版本的插件,现在这似乎工作正常。 – 2011-07-09 06:59:23

1

我发现更新到最新的快照构建修复了我的编译问题。

http://jira.codehaus.org/browse/GRECLIPSE-1003

将这个到你安装新的软件...: http://dist.codehaus.org/groovy/distributions/greclipse/snapshot/e3.6/

+0

下一次我在eclipse中时,我将添加该更新站点并查看快照是否适合我。在一次会议上,我和其中一位编写groovy的人交谈过,他似乎并不希望使用AspectJ编写eclipse插件。所以为了“解决”这个问题,我不得不将我的groovy代码移到它自己的项目中,这并不理想。希望这可以让我把它移回去...... – gMale 2011-03-15 06:44:09

+0

这里的问题在于2.1.1版本与Eclipse 3.6.2不兼容。但是,2.1.2现在可从更新站点获得,您将不会再看到此问题。 – 2011-03-16 15:41:21

+0

@gmale并不是说我们不想让AspectJ编译器和Groovy编译器一起工作,只是它是一个非常非常困难的问题。我们需要对这两个编译器进行重大更改才能发挥作用。考虑到AspectJ可以很好地编入Groovy字节码(但不是源代码),我们没有什么动力去做这件事。当然,使用Groovy语法编写你的方面会非常酷,我们还有许多其他更紧迫的问题需要用到这两种语言。 – 2011-03-16 15:45:36