プロジェクト内に次の設定があります...
- rabbitmq と spring 統合を使用して接続された、SOA スタイル プロジェクト用のマルチ プロジェクト gradle ビルド。
- サービスを表す多数の grails プロジェクトとプレーンな Java/groovy プロジェクトが含まれています。
- 各サービス プロジェクトと並んで、Spring 統合を使用してプロキシできるサービスのすべてのパブリック インターフェイス (およびメッセージ) を含むプロジェクト (jar) があります。
- プロジェクトは gradle の依存関係を使用して相互に関連付けられており、gradle idea プラグインを使用して IntelliJ プロジェクト ファイルを生成します。
私がやりたいことは次のとおりです。
- インターフェース jar を grails プロジェクトに含めて、Spring 統合を使用して、rabbitmq 経由で呼び出しをサービスにプロキシできるようにします。
- grails アプリを実行すると、このインターフェイス jar がビルドされ、grails に含まれます。
- IntelliJ から grails アプリを実行すると、最新バージョンのインターフェイスがコンパイルされ、それらが grails プロジェクトに含まれます。
- gradle からプロジェクト全体をビルドするとき、gradle にインターフェイス jar を grails アプリに正しく関連付けさせます。
- 理想的には、gradle 内で依存関係宣言を使用するだけでこれを実行できるようになりたいと思っていますが、これはおそらく夢物語です...
私のオプションは何ですか?
- gradle 内の grails ビルド ライフサイクルにタスクを追加して、依存する jar をビルドし、それらを grails lib フォルダーにコピーしますか?
- Events.groovy などを使用して grails ビルド ライフサイクルにフックし、grails を呼び出して、依存する jar をビルドおよびパッケージ化します。これは、IntelliJ とコマンド ライン ルートの両方をカバーします。
- インターフェイスを grails プラグインとして構築しますか? Grails以外のプロジェクトからも使用する必要があるため、これを割引しました。
ヘルプ/アドバイスをいただければ幸いです。