2012-05-10 57 views
26

是否有可能在佔位符/標記 無法使用的gradle中進行簡單的字符串替換。Gradle String Replacement - 無佔位符

例如:給出temp.txtyyy替換所有發生的xxx

+1

你是什麼意思_'...其中佔位符/令牌不能used'_? –

+0

我看過的例子似乎需要$ {xxx}或@ xxx @而不僅僅是xxx - 也許我誤解了這個功能? – user568280

回答

3

我假設你正在談論資源處理。在這種情況下,你可以使用免費的形式filter方法:

processResources { 
    filter { String line -> line.replace(...) } 
} 
+2

你能否詳細說明你的例子。 – Ahmed

+10

Downvoted,因爲沒有上下文給出。還不清楚如何處理唯一的單個文件。 – FelixM

+4

這是缺少上下文的問題。答案假定上下文是資源處理(見第一句)。 –

43

閱讀文本:

String contents = new File('whatever.txt').getText('UTF-8') 

替換文本

contents = contents.replaceAll('xxx', 'yyy') 

寫的文字進行再次

new File('replaced.txt').write(contents, 'UTF-8') 

你應該能夠將其包裝成一個任務和呼叫任務正常

+0

好!如何將它包裝在一個任務中:https://docs.gradle.org/current/userguide/custom_tasks.html – OhadR

+1

你如何用正則表達式來做這件事,就像你不知道要完全替換** xxx **或** xx1 **或** 1xx1 **? –