2016-11-18 18 views
0

私はGradleのwarプラグインを試しています。この時点で、プロジェクトはまだAntを使用しています。その標準Webアプリケーションのレイアウト:src/main/webapp/WEB-INF/classes戦争作成時にGradleの.propertiesの内容を変更する方法

| - project 
| ---- src/main/java 
| ---- src/main/resource 
| ---- src/main/webapp 
| ---- src/main/webapp/WEB-INF/classes 

キーjawr.debug.onを含むプロパティファイルがあります。開発の目的で、通常はtrueに設定されます。リリース段階では、このプロパティはAntのpropertyfileタスクを使用してfalseに変更されます。

Gradleでこれを実行するのと同様の方法はありません。

ant.propertyfile(
    file: "jawr.properties") { 
    entry(key: "jawr.debug.on", value: "false") 
} 

これを達成するための適切な方法だろう何を:私は以下のスニペットが、その結果は戦争の内側とファイルを変更しない見つけましたか?

答えて

0

一つの方法は、戦争の作成働く

war { 
     rootSpec.eachFile { 
      if (it.name == 'UserMessages.properties') { 
       filter { line -> 
        line.replace('@[email protected]', "${buildLabel}-${stage}") 
       } 
      } 
     } 
    } 
+0

の間にそれをフィルタリングすることです。しかし、これは不正確な文字列が処理されない置換をもたらすかもしれない問題を引き起こす。何らかの理由で 'filter.php'を' ant.propertyfile(file:it) 'に置き換えると、エラーが発生します。鈍い文字列置換の代わりに適切な不動産置換を利用する方法はありますか? – Daniil

+0

私が知る限り、あなたのユースケースのようなものに対するネイティブサポートはありません。ファイルをフィルタリングするオプションはかなり制限されています。 https://docs.gradle.org/current/userguide/working_with_files.html#sec:filtering_filesも参照してください。 – Slettal

関連する問題