我想在Gradle中复制一些文件,结果文件不应包含任何空白行,即不复制空白行。我假设可以使用filter(...)
完成,也可以使用ant中的TokenFilter
。但是,我不确定如何使用语法。
感谢。
答案 0 :(得分:5)
Gradle使用Ant for filtering,因为它具有强大的实施功能。例如,您可以使用LineContainsRegExp Ant过滤器过滤掉任何只有空或空格的行。
适当的正则表达式可以是 [^ \ n \ t \ r] +
您可以直接从Gradle使用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"
}