我想在每行匹配的地方加上文件名。
我尝试了${file.name}
,但它不起作用。
<concat destFile="report.xml">
<filterchain>
<linecontainsregexp>
<regexp pattern="somePattern"/>
</linecontainsregexp>
<prefixlines prefix="${file.name}"/>
</filterchain>
<fileset dir="${pathToDirectory}" erroronmissingdir="false">
<include name="**"/>
</fileset>
</concat>
下面的代码使用来自第三方Ant-Contrib库的<for>
任务。<for>
遍历文件集中的每个文件。
<for param="file.path">
<path>
<fileset dir="${pathToDirectory}" erroronmissingdir="false">
<include name="**"/>
</fileset>
</path>
<sequential>
<concat destFile="report.xml" append="true">
<path>
<pathelement location="@{file.path}"/>
</path>
<filterchain>
<linecontainsregexp>
<regexp pattern="somePattern"/>
</linecontainsregexp>
<prefixlines prefix="@{file.path}:"/>
</filterchain>
</concat>
</sequential>
</for>
要使用Ant-Contrib,下载Ant-Contrib -1.0b3-bin.zip,从中提取Ant-Contrib -1.0b3.jar,并按照说明安装Ant-Contrib。