2016-03-07 66 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有什么特别的原因或约束?