English 中文(简体)
在Eclipse中如何从Java类引用Groovy域类?
原标题:
  • 时间:2008-12-28 01:39:30
  •  标签:

我该如何在Eclipse中引用一个Groovy域类的Java类?

我把我的域类放在包里:

package com.me.myproject
public class Person {
    String name
    int age
}

然后,在我的Java课程中,我尝试引用com.me.myproject.Person。这适用于grails run-app(命令行),但不能在Eclipse中解析Groovy域类。

我正在运行Eclipse 3.4.1,并安装了最新的Groovy和Grails Eclipse插件:

  • Grails Eclipse Feature 0.1.0 20081120_2330
  • GroovyFeature 1.5.7.20081120_2330

我尝试将Eclipse默认输出文件夹设置为与Groovy编译器输出位置相同。我也尝试启用和禁用“禁用Groovy编译器生成类文件”的设置。我还尝试不将任何类放在包中。这些都不起作用。

问题回答

我也无法在Eclipse中使这个工作成功。在spring推出Groovy/Grails Eclipse插件可以做更多的事情之前你最好使用像Intelij这样的IDE,因为它目前有最好的Groovy支持。

你试过Groovy插件吗?它可能可以做到这个。

虽然我还没有尝试过,但我认为您需要将域文件夹添加为Java构建路径中的src文件夹。

Right-click on project select Properties. Click on Java Build Path, then the Source tab. Click add-folder and make sure your project/grails-app/domain is in the path.

如果那行不通,那么你是对的,我不确定问题是什么。

FYI,Spring-Source作为Eclipse的赞助商,我期待不久将来会有更好的Eclipse插件。但你是对的。现在它很烦人。

我也无法使用相同的输出文件夹在Groovy和Java中运行它,但是如果您使用不同的输出文件夹,则似乎会起作用。

这是我所做的。通过项目属性对话框:

  1. Under Groovy Project Properties deselect the checkbox Disable Groovy Compiler Generating Class Files (Note to plugin devs: please use positive wording on checkbox labels. "Generate Groovy class files" would be much easier to understand than "disabling the disable option".)
  2. In Groovy compiler output location enter web-app/WEB-INF/groovy-classes
  3. Under Java Build Path -> Libraries add the Groovy classes folder.

现在你应该能够在Java中使用编译好的Groovy类。

我认为这更像是一种黑客行为而不是解决方案,但目前它对我有用。

请升级到Groovy-Eclipse插件的V2版本,因为已经修复了这个问题。插件的V2版本不会构建存根,并且在Java和Groovy之间的循环依赖方面没有任何问题。该插件现在带有一个功能补丁,它可以修补JDT编译器,以便它可以原生地处理Groovy文件。

我不确定引用文件或文件夹是否是好方法。你应该使用模块化。因此,你的领域类将存储在单独的“项目”中。可以通过创建插件来实现。你可以在这里找到很好的解释和源代码。

似乎我有点晚来参加这次派对,但我也遇到了同样的问题。我能够通过将项目转换为Groovy项目来解决从Java类引用Groovy域类的问题。指令如下:

  1. Right click on the project in the Project Explorer
  2. Select Convert to a Groovy Project from the Configure menu

我的环境如下:

  • Eclipse Kepler Service Release 1, Build id: 20130919-0819
  • Groovy-Eclipse plugin 2.9.0.xx-20130828-1400-e43-RELEASE
  • Grails IDE 3.4.0.201310051518-RELEASE (I don t think this was necessary)

最后,我没有处理任何“禁用Groovy编译器生成类文件”选项。





相关问题
热门标签