2013-03-12 14 views
22

yerine JAR koyuyor Gradle kullanarak bir kulak oluşturmaya çalışıyorum.Gradle kulak, WAR

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

Ben kulak eklentisi kullanarak kulak oluşturmak için çalışıyorum, ancak ben gradle assemble yaptığımda build dizin altında oluşturulan savaş var:
benim proje ağaç gibi ettik web-uygulamasının, ancak oluşturulan kulak içinde Web uygulamasının kavanozu var. gradle yapılandırma dosyaları olduklarını burada, çok basit:

proje/build.gradle

apply plugin: 'ear' 

repositories { 
    mavenCentral() 
} 

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

proje/web uygulama/build.gradle

apply plugin: 'war' 

repositories { 
    mavenCentral() 
} 

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

neler Yanlış yaptım?

ben ... Aynı zamanda savaş eklentisi için paketlenmiş numuneler, aynı sorun var olduğu ÇÖZÜLDÜ peşin

cevap

33

yılında Teşekkür fark!

Sanki KULAK proje içinde SAVAŞ modülünü yapılandırmak gerekiyor

:

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

orada Herhangi Are belgelere referans? – angelcervera

+0

Bu çözümü nereden aldığımı hatırlamıyorum ve belgeler biraz kafa karıştırıcı ... – rascio

+2

Yapılandırma belgesi: http://www.gradle.org/docs/current/dsl/org.gradle.api. artifacts.Configuration.html – angelcervera

1

Her için bir yapılandırma belirterek önlemek böyle bir şey kullanarak bağımlılık dağıtabilir:

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

... 

dependencies { 
    deploy project(':web-application') 
}