Ant filterset任务未递归
使用ApacheAnt1.7.1 当recurse设置为true时,Ant Filter任务似乎无法在一行中多次解析同一属性。我在Ant文档中找不到这方面的任何提及。这应该发生吗 使用此ant生成文件:Ant filterset任务未递归,ant,Ant,使用ApacheAnt1.7.1 当recurse设置为true时,Ant Filter任务似乎无法在一行中多次解析同一属性。我在Ant文档中找不到这方面的任何提及。这应该发生吗 使用此ant生成文件: <project basedir="." default="assemble" > <macrodef name="copy-and-filter"> <sequential> <copy tofile="to.txt" file
<project basedir="." default="assemble" >
<macrodef name="copy-and-filter">
<sequential>
<copy tofile="to.txt" file="from.txt" overwrite="true">
<filterset recurse="true">
<filtersfile file="filters.properties"/>
</filterset>
</copy>
</sequential>
</macrodef>
<target name="assemble">
<copy-and-filter />
</target>
</project>
filters.properties:
myval=fish
broker.url=-@myval@-
client.url=@myval@-@myval@
我得到的输出是:
i want my broker to be: -fish-
and my client to be: myval
而不是我所期望的是:
i want my broker to be: -fish-
and my client to be: fish-fish
如果我将recurse设置为false,那么我会得到“正确”的行为
i want my broker to be: -@myval@-
and my client to be: @myval@-@myval@
这是为什么?递归标志用于在初始替换发生后查找更多的令牌,但如果再次使用相同的令牌,它将不起作用。问题是设置recurse=true会导致无限循环。请参见Ant的输出:
Infinite loop in tokens. Currently known token tokens: [client.url, myval]
Problem token: @myval@ called from @myval@
我认为使用filterset任务不可能完成您想要完成的任务。您使用to.txt文件的目的是什么?是否提供系统配置文件?是此错误被我的IDE隐藏。我必须重新考虑我在这里做的事情。代码以您想要的方式为Ant的更高版本工作。这其中有一个蚁虫:它似乎在1.8.0和1.81中得到了修复。
Infinite loop in tokens. Currently known token tokens: [client.url, myval]
Problem token: @myval@ called from @myval@