【发布时间】:2013-11-03 13:14:40
【问题描述】:
要在文件集中搜索多个“searchStrings”,下面的 ANT 似乎可以完成这项工作。
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="/usr/share/java/ant-contrib.jar"/>
</classpath>
</taskdef>
<loadfile property="list" srcFile="searchStrings.txt"/>
<echo>.:${list}:.</echo>
<target name="main">
<for list="${list}" param="search4" delimiter="${line.separator}">
<sequential>
<fileset id="existing" dir="../src">
<patternset id="files">
<include name="**/*.xul"/>
</patternset>
</fileset>
<resourcecount property="count">
<fileset id="matches" dir="../src">
<patternset refid="files" />
<contains text="@{search4};" />
</fileset>
</resourcecount>
<echo message="Found '@{search4}' in files : '${count}'"/>
</sequential>
</for>
</target>
但是对于每个单独的 searchString,我需要出现的次数。回显消息“找到...”只给出第一个结果,更糟糕的是,它对所有文件重复该数字。
尝试在 resourcecount 块内添加回显,但失败了。
如何修改它以获得所有搜索字符串的列表?
【问题讨论】:
-
ANT 中的属性是不可变的,这就是计数值不会改变的原因。
-
我已经看到其他使用
的解决方案的讨论 .. 但这在这里也行不通!是否有可能将其“取出”以便以后的任务可以获取它以获取回显消息?
标签: xml ant ant-contrib