4

Eclipseを使用してJavaクラスからGroovyドメインクラスを参照するにはどうすればよいですか?

ドメインクラスをパッケージに入れました:

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

次に、Javaクラスでを参照しようとしますcom.me.myproject.Person。これはgrails run-app(コマンドライン)では機能しますが、Eclipseでは機能しません。EclipseはGroovyドメインクラスを解決できません。

最新のGroovyおよびGrailsEclipseプラグインを使用してEclipse3.4.1を実行しています。

  • GrailsEclipse機能0.1.020081120_2330
  • GroovyFeature 1.5.7.20081120_2330

Eclipseのデフォルトの出力フォルダーをGroovyコンパイラの出力場所と同じに設定してみました。また、「Groovyコンパイラ生成クラスファイルの無効化」設定の有効化と無効化の両方を試しました。また、クラスをパッケージに入れないようにしました。これらはどれも機能しません。

4

7 に答える 7

1

私もEclipseでこれを機能させることができませんでした。春になるまで、Groovy / Grails Eclipseプラグインは、単なるカラーコーディング以外のことを行うために作成されます。最善の策は、現時点で最高のGroovyサポートを備えたIntelijのようなIDEを使用することです。

于 2008-12-31T17:39:42.733 に答える
1

Groovyプラグインを試しましたか?それはこれを行うかもしれません。

于 2009-01-11T06:36:36.247 に答える
0

ファイルやフォルダを参照するのが良い方法かどうかはわかりません。モジュール化を使用する必要があります。したがって、ドメインクラスは別の「プロジェクト」に保存されます。プラグインを作成することでそれを行うことができます。あなたはここで素晴らしい説明とソースコードを見つけることができます。

于 2011-09-06T19:33:04.560 に答える
0

この問題は修正されているため、groovy-eclipseプラグインのV2にアップグレードしてください。プラグインのV2はスタブを構築せず、JavaとGroovy間の循環依存関係に問題はありません。プラグインには、Groovyファイルでネイティブに動作できるようにJDTコンパイラにパッチを適用する機能パッチが付属しています。

于 2009-09-12T02:48:14.410 に答える
0

また、GroovyとJavaで同じ出力フォルダーを使用して動作させることもできませんでしたが、異なる出力フォルダーを使用すると動作するようです。

これが私がしたことです。プロジェクトのプロパティダイアログから:

  1. Groovyプロジェクトのプロパティで、[ Groovyコンパイラ生成クラスファイルを無効 にする]チェックボックスの選択を解除します(プラグイン開発者への注意:チェックボックスラベルには肯定的な表現を使用してください。「Groovyクラスファイルの生成」は、「無効化オプションを無効にする」よりもはるかに理解しやすいでしょう。)
  2. Groovyコンパイラの出力場所に次のように入力しますweb-app/WEB-INF/groovy-classes
  3. [Javaビルドパス]->[ライブラリ]で、Groovyクラスフォルダーを追加します。

これで、JavaからコンパイルされたGroovyクラスを使用できるようになります。

これは解決策というよりはハックだと思いますが、今のところ私のために仕事をしています。

于 2009-07-18T14:26:12.940 に答える
0

私は試していませんが、Domain フォルダーを src フォルダーとして Java ビルド パスに追加する必要があると思います。

プロジェクトを右クリックし、[プロパティ] を選択します。[Java ビルド パス] をクリックし、[ソース] タブをクリックします。add-folder をクリックして、project/grails-app/domain がパスに含まれていることを確認します。

それでもうまくいかない場合は、その通りです。何が問題なのかわかりません。

参考までに、Spring-Source は Eclipse のスポンサーであるため、近い将来、大幅に改善された Eclipse プラグインを楽しみにしています。しかし、あなたは正しいです。とりあえず面倒くさい。

于 2009-01-02T18:00:19.090 に答える