2014-02-18 57 views
2

對於一組開發人員,所有的差異都存儲在一個正常的屬性文件:可以gradle做替代,因爲它複製資源?

token1=some value 
token2=9000 
etc. 

的「令牌」在一系列的駐留在正常的src/main/resources目錄XML文件中。當Gradle將這些文件複製到構建目錄(並且我不確定那是什麼任務)時,是否有機會執行自定義代碼?具體來說,我希望將屬性文件中的標記值替換爲副本。因此,原始副本保持不變,但運行時的版本具有給定開發人員所需的值。

最後,我知道這可以通過兩個或三個步驟完成蠻力,在複製後更改文件。我真的很想知道是否有一個簡單的方法可以在一個步驟中完成。

回答

3

編譯後,Gradle調用processResources任務將資源複製到構建目錄中。在複製資源,processResources可以(通過添加doLast或可能執行的自定義代碼)被配置爲執行濾波:

processResources { 
    filter org.apache.tools.ant.filters.ReplaceTokens, tokens: [ 
     ... 
    ] 
} 

這兩個鏈路可以提供更多的幫助:

+0

完美!非常感謝!!! – JoeG