Я работаю с многомодульным проектом.
Следующее обязательно
apply plugin: 'war'
project(':thymeleaf-02-web') {
description 'Web (HTML, JS, CSS)'
dependencies {
exportedProjects.each{
if("$it"!=":thymeleaf-02-web")
compile project("$it")
}
}
webAppDirName = 'src/main/resources'
war {
version=''
baseName = warBaseName
}
}
Значение webAppDirName
с src/main/resources
является абсолютно обязательным, это не ожидаемая работа с местоположением WEB-INF
, потому что я работаю с Thymeleaf
, в противном случае многие методы @Test
завершатся неудачно, это о Тестирование @Controller
о Spring
.
Теперь у меня есть обязательный кейс для веб-приложения, файл web.xml
для настройки <error-page>
. Он, как обычно, находится в местоположении src/main/webapp/WEB-INF/
, но когда я создаю файл .war
и он развертывается, web.xml
никогда не учитывался и, следовательно, не включался.
Я пробовал следующее дополнение:
dependencies {
compile fileTree(dir: "src/main/webapp/WEB-INF/", include: 'web.xml')
runtime fileTree(dir: "src/main/webapp/WEB-INF/", include: 'web.xml')
exportedProjects.each{
if("$it"!=":thymeleaf-02-web")
compile project("$it")
}
}
Но ничего. На данный момент я должен скопировать / вставить вручную файл web.xml
в развернутый .war
файл.
Итак, какова правильная конфигурация?