2015-04-24 18 views
6

Sto cercando di aggirare il problema descritto in GRADLE-2293 dove i file generati vengono sempre aggiornati perché un timestamp viene scritto nei file Eclipse situati nella directory .settings dal Gradle plugin che genera il File di progetto Eclipse.Come sostituire il testo nei file utilizzando la funzionalità Gradle/Groovy

I file contengono un colpo di testa come questo che vorrei rimuovere

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

Attualmente sto usando un compito Exec per utilizzare l'applicazione esterna sed di tagliare le linee che iniziano con '#':

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

tuttavia ciò aggiunge una dipendenza dai file binari del sistema operativo che vorrei evitare.

Come posso eseguire questa semplice rimozione di righe che iniziano con "#" in un'attività Gradle senza chiamare strumenti esterni?

risposta

6

Ci sono davvero molti modi per farlo, quello con ant è probabilmente più affidabile:

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

Grazie, esattamente quello che stavo cercando! – centic

+0

BTW, ho dovuto sostituire rootDir con projectDir per farlo funzionare anche in configurazioni multi-progetto – centic

Problemi correlati