ANT 替换文件中的所有标记

ANT replace all tokens in file

我正在尝试使用 ANT 内置(所以没有贡献)来创建配置文件。

我想做的是,如果设置了 .properties 文件中的 属性,ANT 将替换配置文件中的相应标记。

但是因为我得到了 2 组(或更多)属性,所以我首先需要过滤它们。

例如:

build.properties :

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

base cfg file :

var1 = "@p1@";
var2 = "@p2@";
var3 = "@p3@";

最后,取决于我是使用 test 还是 prod 属性组,只有 @p1@ @p2@ OR @p2@ @p3@ 将被替换(其他忽略)

我尝试使用 <propertyref><mapper> 进行过滤,但看起来我做错了。

有什么想法可以帮助我做到这一点吗?

仅声明过滤器是不够的,

你应该使用像

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

在这种情况下,请注意令牌文本需要匹配,即 'p1' 而不是 'prod.p1'。

为什么不使用 ant-contrib 有什么特别的原因或限制?