如何从过滤器链中的文件集打印文件名



我想在每行匹配的地方加上文件名。

我尝试了${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。

相关内容

  • 没有找到相关文章

最新更新