2017-02-17 5 views
0

を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を生成するのではなく、モジュールセクションでプロジェクトそのものを参照するなど、きちんとした方法でこれを解決したいと思っています。私は、すべてのバージョンの文字列を削除するか、それらのすべてを保持します。

答えて

0

JBossデプロイメント構造on GitHubを生成するプラグインがあります。 これを何とかして解決する方法が見つからなかったので、私はプラグインに欠けていた機能を実装し、所有者がそれらをマージしました。

関連する問題