war - 在 src/main/webapp 中过滤文件子集的 gradle 方法是什么?

标签 war gradle

我正在对 gradle 进行 maven 转换,并希望查看有关执行以下操作的最佳方式的意见。我目前在 src/main/webapp 下有多个文件。有些需要以一种方式过滤,有些需要以另一种方式过滤。

名义上,在 src/main/webapp 下,我有一个包含 html 和二进制文件的目录 foo,在 webapp 下还有许多其他文件,包括 html。我只想过滤 foo/*.html 文件。

在我的概念 build.gradle 中,我可以执行以下操作:

war {
  eachFile {
    if(shouldFilter(it)) {
      it.filter(ReplaceTokens, tokens: [key: 'value'])
    }
  }
}

def shouldFilter(input) {
  input.path.contains('foo') && input.name.endsWith('.html')
}

或将每个子集移动到默认情况下不复制的自己的目录中
war {
  from('src/main/foo-pre-filter') {
    into 'foo'
    include '*.html'
    filter(ReplaceTokens, tokens: [key: 'value'])
  }
}

还是我错过了另一个选择?

最佳答案

如果我正确理解了这个问题,您可以使用 filesMatching。此外,我会将它作为 processResources 任务的一部分,而不是 war 任务。它看起来像这样:

processResources {
    filesMatching('foo/*.html') {
        filter(ReplaceTokens, tokens: [key: 'value'])
    }
}

我意识到最初的问题是在 2 年前提出的,所以这可能对提问者没有帮助,但也许将来可以帮助其他人。

关于war - 在 src/main/webapp 中过滤文件子集的 gradle 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608615/

相关文章:

tomcat - 将war文件放到tomcat服务器后如何启动netbeans项目?

gradle - 如何在 Spring Boot Gradle : log4j-over-slf4j. jar、slf4j-log4j12.jar 中启用 Log4j 多重绑定(bind)

多模块 Spring Boot 项目中的 Gradle 依赖插件

gradle - Gradle 任务接管 war

java - 以编程方式停止 Tomcat 中的 servlet

java - 将 war 应用程序名称与 war 文件名分开

jar - Gradle 中获取 gradle 依赖项缓存中 jar 文件路径的最简洁方法

grails - 打包 war 时的Grails事件列表

android - Gradle 不会自动将 jar 添加到项目中

java - Gradle:类路径和编译依赖有什么区别?