2013-03-12 16 views
22

Próbuję zbudować ucho przy użyciu Gradle.
mam moje drzewo projekt jak:Ucho Gradle wstawia JAR zamiast WAR

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

Próbuję wygenerować ucha za pomocą wtyczki ucha, ale kiedy robię gradle assemble mam wojnę utworzoną na mocy build katalogu z aplikacji web-application, ale wewnątrz wygenerowanego zestawu ucho Mam słoik aplikacji internetowej. W Gradle pliki konfiguracyjne są bardzo proste, oto one:

projekt/build.gradle

apply plugin: 'ear' 

repositories { 
    mavenCentral() 
} 

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

projekt/web application/build.gradle

apply plugin: 'war' 

repositories { 
    mavenCentral() 
} 

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

Co Zrobiłem źle?

Zauważyłem, że również dołączonych próbek do wtyczki wojennej, mają ten sam problem ... góry dzięki

Odpowiedz

33

rozwiązany!

Trzeba skonfigurować moduł WAR wewnątrz projektu EAR jako:

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

czy są jakieś odniesienie w dokumentacji? – angelcervera

+0

Nie pamiętam, gdzie biorę to rozwiązanie, a dokumentacja jest nieco myląca ... – rascio

+2

Dokumentacja konfiguracji: http://www.gradle.org/docs/current/dsl/org.gradle.api. artefakty.Konfiguracja.html – angelcervera

1

Można uniknąć określania konfiguracji dla każdego wdrożyć zależność używając coś takiego:

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

... 

dependencies { 
    deploy project(':web-application') 
} 
Powiązane problemy