Java Gradle:War任务具有冲突的包含/排除

Java Gradle:War任务具有冲突的包含/排除,java,groovy,build,build-process,gradle,Java,Groovy,Build,Build Process,Gradle,我正试图用Gradle构建一个war文件,但是我遇到了一个问题,排除了一个目录,包括了另一个恰好具有相同名称但不同父目录的目录 请注意,在下面的第一个代码示例中,css/目录都没有包含在最终的war文件中——我假设是因为Gradle认为我想排除任何名为css/的目录,而不管其绝对路径如何 基本上,我想排除src/main/webapp/css,并包括build/tmp/css,因为后者包含缩小的代码。我怎样才能做到这一点?我尝试过以各种方式指定绝对路径,但没有成功 war { depends

我正试图用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/')
}

然后,结果是缩小的和非缩小的代码都被包括在内。

我不确定为什么在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'"
  }
}
exclude('WEB-INF/classes/','css/')
的目的是实际排除这两个目录
css/
不在
类的内部。除此之外,
进入“css”
似乎确实起到了作用。