2016-03-07 65 views
0

我試圖使用ANT 內置(因此沒有貢獻)來創建配置文件。ANT替換文件中的所有標記

我想要做的是,如果設置了.properties文件中的屬性,則ANT將替換配置文件中相應的令牌。

但是由於我得到2個(或更多)屬性組,我首先需要對它們進行過濾。

對於爲例:

build.properties : 

test.p1=valueTestA 
test.p2=valueTestB 
prod.p2=valueProdA 
prod.p3=valueProdB 

base cfg file : 

var1 = "@[email protected]"; 
var2 = "@[email protected]"; 
var3 = "@[email protected]"; 

最後,取決於如果我使用測試或督促組屬性,僅@ P1 @ P2 @ OR @ P2 @ P3 @將被替換(和其他忽略)

我試圖使用<propertyref><mapper>來過濾,但它看起來像我這樣做是錯誤的。

任何想法來幫助我做到這一點?

+0

[使用ANT替換所有基於屬性文件的令牌](http://stackoverflow.com/questions/4508122/replacing-all-tokens-based-on-properties-file-with-ant) –

回答

1

單獨聲明過濾器是不夠的,

你應該使用類似

<filter filtersfile="build.properties"/> 
<copy file="basecfgfile" tofile="${dest.file}" filtering="true" /> 

,並在這種情況下,記住,令牌文本將需要匹配即「P1」而不是「刺.P1' 。

爲什麼不使用ant-contrib有什麼特別的原因或約束?