2012-05-10 10 views
26

プレースホルダ/トークン を使用できないgradleで簡単な文字列置換を行うことは可能ですか?グラデーション文字列の置換 - プレースホルダなし

たとえば、temp.txtは、すべての発生をxxxに置き換えます。yyyで置き換えます。再び

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

あなたはタスクとコールにそれらをラップすることができるはず書く置き換えテキストをテキスト

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

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

アウト:

+1

あなたはどういう_'...プレースホルダ/トークンはused'_することはできません。その場合、あなたは自由形式filterメソッドを使用できますか? –

+0

私が見た例は、xxxとは対照的に$ {xxx}や@ xxx @を必要とするようです - おそらく私はその機能を誤解していますか? – user568280

答えて

3

あなたはリソースの処理について話していると思います。

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

あなたの例を詳しく説明できますか? – Ahmed

+10

コンテキストが指定されていないため、Downvoted。また、どのようにして1つのファイルしか処理できないかは明確ではありません。 – FelixM

+4

それは文脈が欠けているという質問です。答えは、コンテキストがリソース処理であることを前提としています(最初の文を参照)。 –

43

内のテキストを読みます正常な仕事

+0

良い!どのようにタスクにラップするか:https://docs.gradle.org/current/userguide/custom_tasks.html – OhadR

+1

正規表現でこれをやってみましょうか?正確には** xxx **または** xx1 **または** 1xx1 **? –