2015-04-24 2 views
6

Я пытаюсь решить проблему, описанную в GRADLE-2293, где сгенерированные файлы всегда обновляются, поскольку временная метка записывается в файлы Eclipse, расположенные в каталоге .settings, с помощью Gradle plugin, который генерирует Файлы проекта Eclipse.Как заменить текст в файлах с помощью функции Gradle/Groovy

файлы содержат заголовок, как это, которое я хотел бы удалить

# 
#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 

однако это добавляет зависимость от двоичных файлов операционной системы, которых я бы хотел избежать.

Как я могу сделать это простое удаление строк, начинающихся с «#» в задаче «Грейдл», без вызова внешних инструментов?

ответ

6

Есть очень много способов сделать это, один с ant, вероятно, самым надежным:

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

Спасибо, именно то, что я искал! – centic

+0

BTW, мне пришлось заменить rootDir на projectDir, чтобы он работал в многопроектных настройках – centic

Смежные вопросы