Как заменить текст в файлах, используя функциональность Gradle/Groovy
Я пытаюсь обойти проблему, описанную в GRADLE-2293, где сгенерированные файлы всегда обновляются, потому что метка времени записывается в файлы Eclipse, расположенные в каталоге .settings
с помощью плагина Gradle, который генерирует файлы проекта Eclipse.
Файлы содержат такой заголовок, который я хотел бы удалить
#
#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, без вызова внешних инструментов?
1 ответ
Решение
Есть действительно много способов сделать это, один с ant
Вероятно, наиболее надежный:
task removeLines << {
ant.replaceregexp(match:'^#.*', replace:'', flags:'g', byline:true) {
fileset(dir: project.projectDir, includes: 'lol')
}
}