我是Ant的新手,我不太清楚如何做以下操作(如果可能的话):我有这样的基本代码:
<copy todir="${mydir}">
<fileset dir="${mydir2}" includes="**/*.html" />
<filterchain>
<replaceregex pattern="bla" replace="pla"/> <!-- regex1 -->
<replaceregex pattern="doh" replace="dah"/> <!-- regex2 -->
<filterchain>
</copy>
在fileset任务递归的文件夹中,我有一堆html文件,有些包含到现有文件的链接,有些包含到不存在文件的链接。
现在我要做的是:
- 读取文件集的每个文件,提取它们都包含的特定链接。
- 查看该链接是否指向现有文件。
- 如果是,我应用regex1。
- 如果没有,我应用regex2删除死链接。
所以有一些东西:条件,从文件中检索数据到Ant以在其他任务中使用它,这似乎是不可能做到的!
谢谢你的帮助
使用filterchain与tokenfilter replaceregex, f.e:
<copy todir="${mydir}">
<fileset dir="${mydir2}" includes="**/*.html"/>
<filterchain>
<tokenfilter>
<!-- regex 1 -->
<replaceregex pattern="hello" replace="world" flags="gi"/>
<!-- regex 2 -->
<replaceregex pattern="doh" replace="dah"/>
</tokenfilter>
</filterchain>
</copy>
似乎ant -contrib有一个任务,允许您检索regexp的结果并将其存储在ant属性中,该属性将确保测试文件的存在性,然后继续执行提供的switch语句。