将目录内容打印到文件的 ANT 任务



作为我正在玩的自定义蚂蚁构建的一部分,我想拥有构建

  1. 对 html 文档执行<replaceregexp>
  2. 对于正则表达式上的"替换",我想迭代一个包含.js文件的目录,并注入一个标签来指向每个文件。

我一直在浏览蚂蚁文档http://ant.apache.org/manual/index.html

但我还没有看到任何可以帮助我迭代或列出文件的东西。

您可能希望通过处理包含.js文件的目录来首先生成替换文本。

一种方法可能是使用fileset来收集文件名,然后使用pathconvert任务来构造 html 代码段以使用替换文本。 例如,对于目录"my_dir":

<fileset id="dir.contents" dir="my_dir">
    <include name="*.js"/>
</fileset>
<pathconvert pathsep="${line.separator}" property="js.html" refid="dir.contents">
  <chainedmapper>
    <mapper type="flatten" />
    <regexpmapper from="(.*)" 
       to='&lt;script type="text/javascript" src="http://your.url/1"&gt;&lt;/script&gt;' />
  </chainedmapper>
</pathconvert>
<echo>${js.html}</echo>

flatten将删除文件路径的目录部分,只保留文件名。

然后,回显会产生如下结果:

 [echo] <script type="text/javascript" src="http://your.url/a.js"></script>
 [echo] <script type="text/javascript" src="http://your.url/b.js"></script>
 [echo] <script type="text/javascript" src="http://your.url/c.js"></script>

因此,您可以使用${js.html}作为正则表达式替换文本。

替换正则表达式任务支持嵌套的文件集元素。任务文档中的示例

<replaceregexp match="s+" replace=" " flags="g" byline="true">
    <fileset dir="${html.dir}" includes="**/*.html"/>
</replaceregexp>

在 http://ant.apache.org/manual/Tasks/replaceregexp.html

这是你要找的吗?

相关内容

  • 没有找到相关文章

最新更新