Если бы это был я, я бы следовал правилам именования Gradle и сохранял файлы на
- src / weblogic / webapp / WEB-INF / web.xml
- ЦСИ / JBoss / WebApp / WEB-INF / web.xml
Эта структура допускает использование пользовательских классов и ресурсов Java в будущем для каждого контейнера сервлета, если это необходимо.
Тогда вы можете создать две дополнительные задачи в build.gradle
apply plugin: 'war'
dependencies { ... }
task weblogicWar(type: Zip) {
dependsOn war
from zipTree(war.archivePath).matching {
exclude 'WEB-INF/web.xml'
}
from 'src/weblogic/webapp'
archiveName = "my-app-weblogic-${version}.war"
}
task jbossWar(type: Zip) {
dependsOn war
from zipTree(war.archivePath).matching {
exclude 'WEB-INF/web.xml'
}
from 'src/jboss/webapp'
archiveName = "my-app-jboss-${version}.war"
}
// wire the tasks into the DAG
assemble.dependsOn weblogicWar
assemble.dependsOn jbossWar
Вы также можете сделать это в цикле, например:
['jboss', 'weblogic'].each { container ->
task "${container}War"(type: Zip) {
dependsOn war
from zipTree(war.archivePath).matching {
exclude 'WEB-INF/web.xml'
}
from "src/${container}/webapp"
archiveName = "my-app-${container}-${version}.war"
}
assemble.dependsOn "${container}War"
}