Mam podprojektu ze spec wojennej, która wygląda następująco:Gradle -> Jak pominąć kilka słoików z WEB-INF/lib
war {
from('resources') {
include '*.properties'
into 'WEB-INF/classes/'
}
webXml = file('src/main/webapp/WEB-INF/web.xml')
}
działa świetnie. Tworzy pojedynczy, gruby plik wojenny, który można rozmieścić na serwerze Tomcat. Problem polega na tym, że podczas wdrażania do TomEE i JBoss występują konflikty (np. Z Javaxem Servletem, Jersey itp.). Więc chcę wykluczyć zestaw słoików z wojny. Spojrzałem na dokumentację wojny w Gradle i wygląda na to, że muszę w tym celu użyć wykluczeń. Próbowałem ją na dwa różne sposoby, a słoiki nie są wyłączone z wojny:
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'
}
Jest w podprojektu (Karyon-examples) w ramach projektu Netflix/Karyon hostowane na github. Zależności w podprojekcie wyglądać następująco:
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')
}
I chcę, aby uniknąć edycji rzeczy jak skompilować versus zależności wykonawczych, zwłaszcza w innych plikach i podprojektów. W rzeczywistości słoiki, które próbuję wykluczyć powyżej, są łagodne, gdy biegną z pomostem i regularnym kocurem.
Po prostu chcę wyłączyć te słoiki bez komplikowania skryptów kompilacji. czego mi brakuje?
Dzięki
@rob - 'providedRuntime' jest chyba do zrobienia. Oznacza to po prostu, że biblioteka nie zostanie dodana do pliku wojny. Możesz użyć 'exclude', ale niestety jest to nieudokumentowane i bardzo mylące, dokładnie jak to zrobić. – david