耳をGradleでアセンブルしようとしています。application.xml
には非ejbモジュールがいくつか含まれています。従属プロジェクトアーカイブは{basename}-{version}.{extension}
標準で生成されます。 subproject-0.2.6.rar
。しかし、これらのプロジェクトのいくつかはJavaまたはコネクタモジュールとしてマークする必要があるため、正しいファイルを扱う際に問題があります。Gradle Ear Plugin:バージョン指定なしのモジュールの追加
これは、ビルドスクリプトは次のようになります。
apply plugin: 'ear'
dependencies {
deploy project(':EJB-Project')
deploy project(':Commons')
deploy project(':UpdateManager')
earlib 'net.sf:jasperreports:unknown'
earlib 'org.apache.axis:axis:1.4'
}
ear {
deploymentDescriptor {
applicationName = 'EnterpriseProject'
module('Commons.jar', 'java')
module('UpdateManager.rar', 'connector')
}
// Remove the version postfix from archived files
rename(/(.*)-${version}(.)/, /$1$2/)
}
jboss-deployment-structure.xml
も、バージョン指定せずに宣言サブ展開ノードでアーカイブを持っています。
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
...
<sub-deployment name="EJB-Project.jar">
<dependencies />
<exclusions />
</sub-deployment>
<sub-deployment name="Commons.jar">
<dependencies />
<exclusions />
</sub-deployment>
...
耳のタスクで名前変更メソッドが正常にdeploy
設定からライブラリの名前を変更しますが、Gradleのは、EJBモジュールとして、元の名前に自動的にmodule(String path, String identifier)
を経由して明示的に追加されていない依存関係を追加します:
<module>
<ejb>EJB-Project-4.5.2.jar</ejb>
</module>
ファイル名(とその拡張子)を指定するのではなく、JBossのデプロイメントXMLを生成するのではなく、モジュールセクションでプロジェクトそのものを参照するなど、きちんとした方法でこれを解決したいと思っています。私は、すべてのバージョンの文字列を削除するか、それらのすべてを保持します。