在使用 gradle 管理Springboot项目时,遇到下载 resources下的资源文件(word、excel、模板),结果文件下载成功不能正常打开。
花了一点时间,找到当项目build 打包时,文件copy是出现问题,打包到jar包下面的文件就是错的。
观察到:
def profileName = System.getProperty("profile") ?: "dev"
processResources{
filter org.apache.tools.ant.filters.ReplaceTokens, tokens : [profileName: profileName]
}
gradle 有一行配置是这样子的, 去掉该配置后打包之后,文件下载就可以打开。
最后,百度了一下大神们写的资料,做了一点修改:
// 其实 就是把我们的资源文件,我当前的这个文件夹下的都是资源文件做一下过滤。
def profileName = System.getProperty("profile") ?: "dev"
processResources{
filesNotMatching("doc/**") {
filter org.apache.tools.ant.filters.ReplaceTokens, tokens : [profileName: profileName]
}
}
- processResources是Java插件,它是复制型的任务。
-
我通过调用下面的方法配置processResources任务:
AbstractCopyTask filesMatching(String pattern, Action<? super FileCopyDetails> action)
-
的第一个参数的方法是一个模式字符串。我提供'foo/*。html'作为模式。
- 该方法的第二个参数是
Action
接口,它只有一个方法。我正在提供一个闭包作为接口的实现。