我正在尝试使用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/
:
war {
dependsOn minify
from('build/tmp/') { include ('css/') }
exclude('WEB-INF/classes/')
}
然后结果是包括缩小和非缩小代码。
答案 0 :(得分:5)
我不确定为什么在build.gradle中排除WEB-INF/classes/css
而不是src/main/webapp/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'"
}
}