2017-07-28 11 views
0

耳のアーティファクトからjarファイルを除外することに関する質問があります。問題は、私はwar_moduleから生成ジャーアーティファクトを除外する方法ですGradle:耳のファイルから瓶を除外する方法は?

dependencies { 
    deploy project(ejb_module) 
    earlib project(ejb_module) 

    deploy project(war_module) 
    earlib project(war_module) 
} 

:私のear_module/build.gradle

project 
- ejb_module 
- war_module 
- ear_module 
- other_module 

:私のプロジェクトは、以下のモジュールがあります。

war_moduleは、戦争と瓶のアーティファクトの両方を生成します。 jarアーティファクトが必要なのは私のother_moduleがそれに依存しているからです。

war_moduleには、earlibを経由する必要があるいくつかの依存関係があります。

私の質問は、耳のファイルからwar_module.jarを除外する方法です。これはルートと、APP-INF/libの両方に含まれています。

答えて

0

私はあなたのwar_moduleあなたが.war..jar成果物を得るために、両方のwarjavaプラグインを適用するには推測?

試してみてください。

deploy project(path: 'war_module', configuration: 'archives') 
earlib project(path: 'war_module', configuration: 'archives') 

Gradleの戦争のプラグインコードに見た場合には、Javaプラグインが含まれていた場合、それは、プロジェクトのデフォルトの出力をオーバーライドすることを見ることができる唯一ので.warを拾う必要があります。

さらに、warプラグインは、Javaプラグインを使用してコードをコンパイルします。


あなたは、もちろん、単に

config (project){exclude module: 'name'} 

を使用してビルドからアーチファクトを除外することができますが、私は、これはあなたがここでできる最善ではないと思います。


行い、使用のGradleのバージョンに応じprovidedRuntimeruntimeOnly構成に探してみてください。

アーティファクトをコンパイルするために使用されている場合は、compileOnlyなど

dependecies{}で使用されるこの構成では、それはあなたが造るどのアーティファクトに上陸べきではないjarファイルを使用しますが、それ以外の場所を公開するために行くことはないだろうとこれはおそらくあなたのケースで最もあなたに合ったものですが、質問はこれを尋ねることではなく、単なるアドバイスです。

+0

ありがとうございますが、動作しませんでした。私は近づいて来た: foo { extendFromランタイム } しかし、それでもwar_moduleからのjarファイルが含まれています。設定:アーカイブは効果がありませんでした。 – user3111525

+0

あなたのアーキテクチャには何かが混乱していると思います。あなたは戦争と瓶をどうやって作りますか? – LazerBanana

関連する問題