如何使用Gradle/Groovy功能替换文件中的文本

cen*_*tic 6 groovy gradle gradle-eclipse

我正在尝试解决GRADLE-2293中描述的问题,其中生成的文件总是更新,因为时间戳.settingsGradle插件写入目录中的Eclipse文件,该插件生成Eclipse项目文件.

这些文件包含这样的标题,我想删除它

#
#Fri Mar 27 10:26:55 CET 2015
Run Code Online (Sandbox Code Playgroud)

目前我正在使用Exec任务来使用外部应用程序sed来剪切以"#"开头的行:

task adjustEclipseSettingsFile(type: Exec) {
    executable 'sed'
    args '-i','-e','s/^#.*//g','.settings/org.eclipse.jdt.core.prefs'
}
eclipseJdt.finalizedBy adjustEclipseSettingsFile
Run Code Online (Sandbox Code Playgroud)

但是这会增加对我想避免的操作系统二进制文件的依赖.

如何在不调用外部工具的情况下在Gradle任务中简单地删除以"#"开头的行?

Opa*_*pal 6

有很多方法可以做到这一点,ant最可靠的方法是:

task removeLines << {
   ant.replaceregexp(match:'^#.*', replace:'', flags:'g', byline:true) {
      fileset(dir: project.projectDir, includes: 'lol')
   }
}                                                                                                                                                                             
Run Code Online (Sandbox Code Playgroud)