我想在 Gradle 中复制一些文件,生成的文件不应包含任何空行,即不复制空行。我认为这可以用 from ant 完成,filter(...)
也许可以用TokenFilter
from ant 完成。但是,我不确定语法会是什么样子。
谢谢。
Gradle 使用Ant 进行过滤,因为它强大的实现。例如,您可以使用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 的过滤方法:
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"
}