3
我想在Gradle中复制一些文件,并且生成的文件不应该包含任何空白行,即空行不会被复制。我认为可以用filter(...)
来完成,也可以用蚂蚁的TokenFilter
来完成。但是,我不知道如何将语法看起来像。如何用Gradle复制文件时跳过空行?
谢谢。
我想在Gradle中复制一些文件,并且生成的文件不应该包含任何空白行,即空行不会被复制。我认为可以用filter(...)
来完成,也可以用蚂蚁的TokenFilter
来完成。但是,我不知道如何将语法看起来像。如何用Gradle复制文件时跳过空行?
谢谢。
Gradle使用Ant for filtering,因为它的强大的实现。例如,您可以使用LineContainsRegExp Ant过滤器来过滤掉只有空白或空白的任何行。
适当的正则表达式可以是[^ \ n \吨\ R] +
可以使用Ant直接从摇篮这样的:
task copyTheAntWay {
ant.copy(file:'input.txt', tofile:'output.txt', overwrite:true) {
filterchain {
filterreader(classname:'org.apache.tools.ant.filters.LineContainsRegExp') {
param(type:'regexp', value:'[^ \n\t\r]+')
}
}
}
}
或通过使用Gradle CopySpec's过滤方法:
task copyGradlefied(type:Copy) {
def regexp = new org.apache.tools.ant.types.RegularExpression()
regexp.pattern = '[^ \n\t\r]+'
from(projectDir) {
include 'input.txt'
filter(org.apache.tools.ant.filters.LineContainsRegExp, regexps:[regexp])
}
into "outputDir"
}
你是怎么知道把regexps当成数组的呢?我最好的阅读文档得出的结论是param只是简单的正则表达式:'my-regex'。 – 2014-11-10 21:51:47