ich wegzulassen habe ein Teilprojekt mit einem Krieg spec, die wie folgt aussieht:Gradle -> Wie einige Gläser aus WEB-INF/lib
war {
from('resources') {
include '*.properties'
into 'WEB-INF/classes/'
}
webXml = file('src/main/webapp/WEB-INF/web.xml')
}
Arbeiten groß. Erstellt eine einzelne, fette War-Datei, die in Tomcat bereitgestellt werden kann. Problem ist, wenn ich auf TomEE und JBoss versetze, laufe ich auf Konflikte (dh mit Javax Servlet, Jersey, usw.). Also möchte ich eine Reihe von Gläsern von der Kriegsführung ausschließen. Ich habe mir die Gradle-Kriegsdokumentation angesehen, und es sieht so aus, als müsste ich Ausschlüsse dafür verwenden. Ich versuchte es zwei verschiedene Arten, und die Gläser werden nicht aus dem Krieg ausgeschlossen:
war {
// copy properties file in classes so that
// they may be loaded from classpath
from('resources') {
include '*.properties'
into 'WEB-INF/classes/'
}
// specify web xml
webXml = file('src/main/webapp/WEB-INF/web.xml')
// remove jars that conflict with TomEE
exclude '**/javax.inject-1.jar'
exclude '**/javax.servlet-2.5.0.v201103041518.jar'
exclude '**/servlet-api-2.5.jar'
exclude '**/validation-api-1.0.0.GA.jar'
}
Dieses in einem Teilprojekt ist (karyon-Beispiele) innerhalb des NetFlix/karyon Projekt auf Github gehostet. Die Abhängigkeiten im Teilprojekt wie folgt aussehen:
dependencies {
compile 'org.slf4j:slf4j-api:1.7.0'
runtime 'org.slf4j:slf4j-simple:1.7.0'
compile project(':karyon-extensions')
compile project(':karyon-admin-web')
}
Und ich will Bearbeitung Dinge vermeiden, wie im Vergleich zu Laufzeit Abhängigkeiten kompilieren, vor allem in anderen Dateien und Unterprojekte. In der Tat sind die Gläser, die ich oben ausschließen möchte, gutartig, wenn sie mit Anlegesteg und normalem Kater laufen.
Ich möchte einfach diese Gläser ausschließen, ohne die Build-Skripte zu verkomplizieren. Was vermisse ich?
Dank
@ Rob - 'providedRuntime' ist wahrscheinlich der Weg zu gehen. Es bedeutet nur, dass die Bibliothek nicht zur Kriegsdatei hinzugefügt wird. Sie können möglicherweise 'exclude' verwenden, aber leider ist es undokumentiert und sehr verwirrend, wie genau es gemacht wird. – david