Gradle:战争任务有冲突包含/排除

我正在尝试使用Gradle构建一个war文件,但是我遇到了一个问题,不包括一个目录,并且包含另一个恰好具有相同名称但不同父目录的目录。

请注意下面的第一个代码示例中, css/目录都没有包含在最终的war文件中 – 我假设因为Gradle认为我想要排除任何名为css/ 目录而不管其绝对路径。

基本上我想排除src/main/webapp/css并包含build/tmp/css因为后者包含缩小的代码。 我怎样才能做到这一点? 我已尝试以各种方式指定绝对路径,但没有取得任何成功。

 war { dependsOn minify from('build/tmp/') { include ('css/') } exclude('WEB-INF/classes/', 'css/') } 

如果我不排除css/ like,那么:

 war { dependsOn minify from('build/tmp/') { include ('css/') } exclude('WEB-INF/classes/') } 

然后结果是包括缩小和非缩小代码。

我不确定为什么在build.gradle中排除WEB-INF/classes/css而不是src/main/webapp/css ,但是通过以下方式复制缩小的CSS文件而不是原始的CSS文件:

 apply plugin: 'war' war { // dependsOn 'minify' from 'src/main/webapp' exclude 'css' // or: "exclude 'WEB-INF/classes/css'" from('build/tmp/css') { include '**/*.css' into 'css' // or: "into 'WEB-INF/classes/css'" } }