8

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

那么结果是包含了缩小和非缩小的代码。

4

1 回答 1

6

我不确定为什么要排除WEB-INF/classes/css而不是src/main/webapp/css在 build.gradle 中,但是复制缩小的 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'"
  }
}
于 2012-10-30T14:12:10.630 回答