Gradle - War任务:如何在.war文件中包含特定路径中的特定文件

时间:2018-05-03 21:44:41

标签: gradle

我正在使用多模块项目。

以下是强制性的

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的{​​{1}}的值是完全强制性的,并不是src/main/resources位置的预期工作,因为我正在使用WEB-INF,否则很多Thymeleaf方法失败,关于@Test的测试@Controller

现在,我有一个强制性案例,我需要为{app} Spring文件配置web.xml。它通常位于<error-page>位置,但是当我创建src/main/webapp/WEB-INF/文件并进行部署时,.war从未被考虑过,因此未包含在内。

我尝试了以下添加:

web.xml

但没有。目前,我必须将手动 {/ 1}}文件复制/粘贴到部署的 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") } } 文件中。

那么正确的配置是什么?

1 个答案:

答案 0 :(得分:1)

尝试使用from()块中的war来电:

war {
    from('src/main/webapp/WEB-INF/web.xml') {
        into('WEB-INF')
    }
}