如何使用 Gradle/Groovy 功能替换文件中的文本
How to replace text in files using Gradle/Groovy functionality
我正在尝试解决 GRADLE-2293 where generated files are always updated because a timestamp is written to the Eclipse files located in directory .settings
by the Gradle plugin 中描述的生成 Eclipse 项目文件的问题。
这些文件包含一个 header 我想删除的
#
#Fri Mar 27 10:26:55 CET 2015
目前我正在使用 Exec 任务来使用外部应用程序 sed
来剪切以“#”开头的行:
task adjustEclipseSettingsFile(type: Exec) {
executable 'sed'
args '-i','-e','s/^#.*//g','.settings/org.eclipse.jdt.core.prefs'
}
eclipseJdt.finalizedBy adjustEclipseSettingsFile
然而,这增加了对我想避免的操作系统二进制文件的依赖。
如何在不调用外部工具的情况下简单删除 Gradle 任务中以“#”开头的行?
确实有很多方法,带ant
的可能是最可靠的:
task removeLines << {
ant.replaceregexp(match:'^#.*', replace:'', flags:'g', byline:true) {
fileset(dir: project.projectDir, includes: 'lol')
}
}
我正在尝试解决 GRADLE-2293 where generated files are always updated because a timestamp is written to the Eclipse files located in directory .settings
by the Gradle plugin 中描述的生成 Eclipse 项目文件的问题。
这些文件包含一个 header 我想删除的
#
#Fri Mar 27 10:26:55 CET 2015
目前我正在使用 Exec 任务来使用外部应用程序 sed
来剪切以“#”开头的行:
task adjustEclipseSettingsFile(type: Exec) {
executable 'sed'
args '-i','-e','s/^#.*//g','.settings/org.eclipse.jdt.core.prefs'
}
eclipseJdt.finalizedBy adjustEclipseSettingsFile
然而,这增加了对我想避免的操作系统二进制文件的依赖。
如何在不调用外部工具的情况下简单删除 Gradle 任务中以“#”开头的行?
确实有很多方法,带ant
的可能是最可靠的:
task removeLines << {
ant.replaceregexp(match:'^#.*', replace:'', flags:'g', byline:true) {
fileset(dir: project.projectDir, includes: 'lol')
}
}