12

一部の Groovy コードが Java ファイルを参照している状況がありますが、同じ Groovy コードを参照する別の Java ファイルもあります。Mavenでコンパイルしようとすると、Javaの前または後にGroovyをコンパイルする必要があります.GroovyコードはいくつかのJavaファイルに依存し、別のJavaファイルはGroovyコードに依存するため、実際には機能しません. この種の依存関係を処理する方法はありますか?

4

3 に答える 3

11

はい、GMavenを使用してください。これは共同コンパイラであるため、Java から groovy へ、および groovy から Java への依存関係を自動的に管理します。

簡単に言えば、次のことを行う必要があります。

  • に を含めgmaven-pluginますpom.xml
  • グルーヴィーなクラスをsrc/main/groovyorの下に置いてくださいsrc/test/groovy
  • gmaven プラグインを関連するライフサイクル フェーズにバインドします。

詳細については、groovy プロジェクトのビルドを参照してください。

于 2009-06-20T21:27:25.353 に答える
8

gmavenプラグインを maven pom.xml に追加することで、コードをコンパイルできるはずです。グルーヴィーなコードの Java スタブを生成して、扱っている言語間参照のタイプを処理します。私はかなりそれを使用し、それは非常にうまく機能します。

于 2009-06-20T21:28:30.810 に答える
0

コードをレイヤーに分割し、下位レイヤーが上位レイヤーを呼び出すようにすることはできますが、その逆はできません。たとえば、Web アプリでは、ビュー レイヤー、サービス レイヤー、および永続化レイヤーを使用できます。ビュー レイヤーはサービス レイヤーを呼び出し、サービス レイヤーは永続レイヤーを呼び出しますが、永続レイヤーがサービス レイヤーまたはビュー レイヤーを呼び出すことはありません。Groovy/Java コードを同じレイヤーに存在させたい場合は、一方が他方を呼び出していることを確認してください。ただし、両方が互いに呼び出しているわけではありません。肝心なのは、双方向の依存関係を避けるべきだということです。

于 2009-06-20T21:23:22.087 に答える