Задача Gradle - War: как включить в файл .war определенный файл по заданному пути - PullRequest
0 голосов
/ 04 мая 2018

Я работаю с многомодульным проектом.

Следующее обязательно

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 файл.

Итак, какова правильная конфигурация?

1 Ответ

0 голосов
/ 04 мая 2018

Попробуйте использовать вызов from() в своем блоке war:

war {
    from('src/main/webapp/WEB-INF/web.xml') {
        into('WEB-INF')
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...