2015-04-24 13 views
6

Próbuję obejść problem opisany w GRADLE-2293, gdzie wygenerowane pliki są zawsze aktualizowane, ponieważ znacznik czasu jest zapisywany w plikach Eclipse znajdujących się w katalogu .settings przez Gradle plugin, który generuje Pliki projektu Eclipse.Jak zamienić tekst w plikach przy użyciu funkcji Gradle/Groovy

Pliki zawierają nagłówek jak ten, który chciałbym usunąć

# 
#Fri Mar 27 10:26:55 CET 2015 

Obecnie używam Exec zadanie korzystać z aplikacji zewnętrznych sed wyciąć linie zaczynające się od „#”:

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

jednak to uzależnia od plików binarnych systemu operacyjnego, których chciałbym uniknąć.

Jak mogę to zrobić, usuwając linie rozpoczynające się od "#" w zadaniu Gradle bez wywoływania narzędzi zewnętrznych?

Odpowiedz

6

Istnieje naprawdę wiele sposobów robi, jeden z ant jest prawdopodobnie najbardziej wiarygodne:

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

Dzięki, dokładnie to, czego szukasz! – centic

+0

BTW, musiałem zastąpić rootDir przez projectDir, aby działało również w konfiguracjach wieloprojektowych – centic

Powiązane problemy