ant filterset属性范围
我想用filterset来写一个文件,替换一个被设置为ant属性的变量。如果我有嵌套过滤器集,但没有refid,我可以传递属性;我正在重复使用过滤器集,所以我想使用refid foo.old只包含ant filterset属性范围,ant,Ant,我想用filterset来写一个文件,替换一个被设置为ant属性的变量。如果我有嵌套过滤器集,但没有refid,我可以传递属性;我正在重复使用过滤器集,所以我想使用refid foo.old只包含foo=@foo@ 这项工作: <target name="filterset-test1"> <property name="bar" value="here is foo" /> <copy file="foo.old" tofile="foo.new1"> <
foo=@foo@
这项工作:
<target name="filterset-test1">
<property name="bar" value="here is foo" />
<copy file="foo.old" tofile="foo.new1">
<filterset begintoken="@" endtoken="@">
<filter token="foo" value="${bar}" />
</filterset>
</copy>
</target>
这无法替换令牌:
<filterset id="test-filters" begintoken="@" endtoken="@">
<filter token="foo" value="${bar}" />
</filterset>
<target name="filterset-test3">
<property name="bar" value="property doesn't pass thru" />
<copy file="foo.old" tofile="foo.new3">
<filterset refid="test-filters" />
</copy>
</target>
有没有办法做到后者?我还尝试编写一个属性文件,并将其用作
filtersfile
属性。问题似乎在于顶级filterset内部:
<filterset id="test-filters" begintoken="@" endtoken="@">
<filter token="foo" value="${bar}" />
</filterset>
谢谢你,克莱斯特。我需要做的是设置filterset-test3内部的信息,或者甚至设置filterset-test3所依赖的不同目标。这是可能的,还是我需要重新检查我的操作顺序?为了使过滤器逻辑更加模块化,一种方法是将任务包装在宏定义中。然后,您可以像第一个示例一样将任务嵌套在内部,而无需使用
refid
。谢谢
<?xml version="1.0" encoding="UTF-8" ?>
<project name="filter-test">
<property name="bar" value="property doesn't pass thru" />
<filterset id="test-filters" begintoken="@" endtoken="@">
<filter token="foo" value="${bar}" />
</filterset>
<target name="filterset-test3">
<copy file="foo.old" tofile="foo.new3">
<filterset refid="test-filters" />
</copy>
</target>
</project>