35

プレースホルダー/トークンを使用できないgradleで単純な文字列置換を行うことは可能ですか?

例: 与えられたすべての出現箇所をでtemp.txt置き換えます。xxxyyy

4

4 に答える 4

54

テキストを読む:

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

テキストを置き換える

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

もう一度テキストを書き出す

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

それらをタスクにラップし、通常どおりタスクを呼び出すことができるはずです

于 2012-05-10T11:17:31.010 に答える
0

インプレースで置換するには:

ant.replaceregexp(file: fout, flags: "g",
      match: 'schemaLocation="[^"]+/', replace: 'schemaLocation="', encoding: 'UTF-8')

構文の参照:

于 2018-06-05T19:39:47.690 に答える
0

リソース処理について話していると思います。その場合、自由形式のfilter方法を使用できます。

processResources {
  filter { String line -> line.replace(...) }
}
于 2012-05-10T11:30:51.497 に答える