私のGroovyコードがJavaファイルを参照する状況がありますが、同じGroovyコードを参照するJavaファイルもあります。 Mavenでコンパイルしようとすると、Javaの前後でGroovyをコンパイルする必要があります。GroovyコードがいくつかのJavaファイルに依存し、異なるJavaファイルがGroovyコードに依存するため、実際には機能しません。このような依存関係を処理する方法はありますか?maven compile groovy
12
A
答えて
8
gmavenプラグインをmaven pom.xmlに追加することで、コードをコンパイルできるはずです。あなたが扱っている言語間参照のタイプに対処するためのGroovyコードのJavaスタブを生成します。私はかなりそれを使用し、それは非常にうまく動作します。
0
コードをレイヤーに分割し、下位レイヤーで上位レイヤーを呼び出すことはできますが、その逆はできません。たとえば、Webアプリケーションでは、ビューレイヤ、サービスレイヤ、および永続レイヤを持つことができます。ビューレイヤーはサービスレイヤーを呼び出し、サービスレイヤーはパーシスタンスレイヤーを呼び出しますが、パーシスタンスレイヤーはサービスレイヤーまたはビューレイヤーを決して呼び出しません。 Groovy/Javaコードが同じレイヤーに存在するようにしたい場合は、他のレイヤーを呼び出すようにしますが、両方がお互いを呼び出すことはありません。要点は、双方向の依存関係を避けるべきだということです。
11
はい、そのままGMavenを使用してください。これは共同コンパイラなので、自動的にJavaをグルーヴィーに変換し、Java依存関係に変換します。
簡単に言えば、あなたがする必要があります。
- をご
pom.xml
でgmaven-plugin
を含めます。 - groovyクラスを
src/main/groovy
またはsrc/test/groovy
にしてください。 - gmavenプラグインを関連するライフサイクルフェーズにバインドします。
詳細はbuilding groovy projectsを参照してください。
関連する問題
- 1. Eclipse helios + maven m2e + Groovy == FAIL
- 2. Maven GroovyとJava + Lombok
- 3. maven groovy stubの生成
- 4. npmとApacheビルドツール(maven、ant、groovy)
- 5. groovyスクリプトでmavenを設定できません
- 6. コンパイルエラー - Groovyとロンボク
- 7. Ruby 'codeile while compile'
- 8. android ant compile failing
- 9. Vue.js 2.0 this。$ compile
- 10. JSmooth EXE Compile
- 11. $ compile vs $ componentController
- 12. cobertura-maven-pluginがgroovyのソースコードを見つけられない
- 13. Mavenビルドエラー:目標org.apache.maven.pluginsを実行できませんでした:maven-compiler-plugin:3.5.1:compile
- 14. Eclipse + Maven + Groovy:プロジェクト設定の更新後にsrc/test/groovyディレクトリが削除される
- 15. eval-when-compile not honored?
- 16. cef project compile link error2001
- 17. XML :: Compile :: SOAPとフォールトコール
- 18. android cross compile、ndk、toolchain
- 19. 既存のGroovyプロジェクトをビルドするMavenでエラーが発生しました
- 20. Oracle Sql Dev内でのCOMPILEとCOMPILE WITH DEBUGの違いは?
- 21. Maven-Invoker-PluginでScriptVariablesを使い、GroovyでPostBuildHookScriptを使う方法
- 22. Mavenの下でGroovyアプリケーションを実行する
- 23. groovyスクリプトを使用してmavenコマンドを実行するには
- 24. JenkinsパイプラインのMavenメタデータ・プラグイン・パラメータにアクセスするGroovyスクリプト?
- 25. IntelliJがgroovyプロジェクト用のMavenソースをダウンロードしていない
- 26. android ant -pre-compile対-pre-build
- 27. `compile project(:dependency)`の依存関係のための格子マッピング?
- 28. Android Gradleメソッドが見つかりません: 'compile()'
- 29. groovy grailsでbuildConfigエラーを解決する方法
- 30. Groovy Intellijで競合する
-1ジョイントGroovy-Javaコンパイラがあります。 –
これは本当ですが、双方向の依存関係があると、不必要に複雑でメンテナンスの難しいコードにつながる可能性があります。この質問の文脈では、私はGMavenの使用が正解であることに同意しますが、私はまだコードをリファクタリングして、少なくとも双方向関係をなくすか、少なくとも減らします。 – rich