Как заменить текст в файлах с помощью функций 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')
}
}