使用Gradle任务从文件中删除特定的行模式

时间:2016-05-04 14:52:06

标签: java gradle

我正在尝试使用gradle中的以下代码从A.txt文件中删除特定的行模式

档案低于内容

A.TXT

nda.url=@nda.url@

# SAP Settings
sdap.url=@sap.url@
sap.prefix.search=@sap.prefix.search@
sap.prefix.group=@sap.prefix.group@

# SMTP/Email Settings
smtp.host=@smtp.host@                                          
smtp.enabled=true

我正在尝试从上面的文件中删除具有此模式的所有行= @ * @ with gradle task,之后我的文件应该只包含那些没有该模式的值。

我正在尝试使用以下gradle代码,但它无法正常工作

task removeandcopy(type:Copy) {
  def regexp = new org.apache.tools.ant.types.RegularExpression()
  regexp.pattern = '=@*@'

  from(projectDir) {
    include 'A.txt'
    filter(org.apache.tools.ant.filters.LineContainsRegExp, regexps:[regexp])
  }
  into "outputDir"
}

有人能让我知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

我能够以下面的方式实现这一点并且工作正常。

task deleteEmptyVariable(dependsOn: passLocalProp) << {
    description "This function will remove all those variable which doesn't have value"
    FileTree  propFiles = fileTree('build/orignal/local.properties.template') {

    }
    String regex = ".*=@.*@"
    propFiles.each { File propFile ->
        println "Start replacing regex on $propFile.name"
        String content = propFile.getText()
        content = content.replaceAll(regex, "")
        propFile.setText(content)
    }
}