Gradle ビルド スクリプトは、いくつかの jar と 1 つの war を含む EAR ファイルを作成します。これは以前はすべて Maven で行われており、現在は Gradle への移行の対象となっています。
環境:
- グラドル 1.12
- グルービー 2.2.1
- Java 1.7.0_60 オラクル
- エクリプス ケプラー SR 2
問題:
... 簡単です: これまでのところ動作します - ear プラグインは、すべてのモジュール ファイルを含む ear ファイルを作成します
deploy project(:core)
「依存関係」セクション内にあり、「core-0.0.1.jar」は ear-root にあり、モジュール エントリが application.xml に作成されています。ここで、ランタイム ライブラリが ear ファイルに含まれていないことがわかりました。だから私は(docuによると)インクルージョンを
earlib project(:core)
earプラグイン構成の「libDirName」プロパティに記載されているように、libsディレクトリ内にライブラリが見つかりました。しかし、現在、application.xml 内にモジュール エントリがなく、「core-0.0.1.jar」が libs ディレクトリ内にあります。
望ましい
ear ルート内のモジュールとして core-0.0.1.jar が必要であり、libs ディレクトリ内のすべてのランタイム ライブラリが必要です。モジュール自体からの jar は必要ありません。(core-0.0.1.jar は戦争ではありません!) そのように...
[APP.EAR]
|--/libs
| |-- log4j.jar
| |-- commons.jar
| |>> app-core.0.0.1.jar <<== NOT !
|
|-app-core-0.0.1.jar <== OK!
|-app-xy-0.0.1.jar
|-app-abc-0.0.1.war
質問
これは私の側で EAR の概念が根本的に理解されていないためですか、それとも Gradle 自体が私たちが望むように動作しないのはなぜですか? それとも、この簡単な手順のために、より複雑な構成が必要になるのでしょうか?