2013-03-12 6 views
22

私はの耳をGradleで作ろうとしています。
私は次のように私のプロジェクトツリーをしました:私は耳のプラグインを使用して耳を生成しようとしているが、私はgradle assembleを行うとき、私はビルドディレクトリの下に作成戦争を持ってGradleの耳はWARの代わりにJARを入れています

/project 
| 
|--> /web-application 
| | 
| |--> /src (stuff of web app) 
| | 
| |--> build.gradle 
| 
|--> build-gradle 
|--> settings.gradle 

ウェブアプリケーションの中にありますが、生成されたの耳の中には、Webアプリケーションのjarがあります。 Gradleの設定ファイルは、彼らがここでは、非常に単純です:

プロジェクト/ build.gradle

apply plugin: 'ear' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    deploy project(':web-application') 
    earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar' 
} 

プロジェクト/ Webアプリケーション/ build.gradle

apply plugin: 'war' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar' 
} 

何私は間違いをした?

私は、事前解決しよう

答えて

33

で 感謝...また戦争プラグインのバンドルされたサンプルは、同じ問題を抱えていることに気づきます!

それはようEARプロジェクト内のWARモジュールを設定する必要があります:あなたはこのようなものを使用して、各展開依存関係の設定を指定しないようすることができます

dependencies { 
    deploy project(path:':web-application', configuration:'archives') 
    earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar' 
} 
+1

いずれかがありますドキュメントのリファレンス? – angelcervera

+0

私はその解決策をどこで覚えていないのですか。ドキュメントは少し混乱しています... – rascio

+2

設定文書:http://www.gradle.org/docs/current/dsl/org.gradle.api。 artifacts.Configuration.html – angelcervera

1

allprojects { 
    plugins.withType(WarPlugin) { 
    // Set default configuration as WAR archive if WAR plugin is used 
    configurations { 
     'default' { 
     extendsFrom = [archives] 
     } 
    } 
    } 
} 

... 

dependencies { 
    deploy project(':web-application') 
} 
関連する問題