Ant exec命令参数处理多个文件

时间:2015-05-21 18:08:31

标签: java ant less exec

我正在使用ant exec命令来实现less实用程序来查看一堆.java文件的源代码。 (我知道还有其他方法可以使用concat

如果我只指定一个文件,那么调用ant view就可以了:

<target name="view">
    <exec executable="less" dir=".">
        <arg value="Main.java"/>
    </exec>
</target>

但如果我将代码更改为<arg value="*.java"/>以查看所有文件,它实际上会搜索名为*.java的文件。

显然我可以为每个文件添加一堆arg,但有一种方法可以使用一个arg吗?

2 个答案:

答案 0 :(得分:3)

* glob在unix-like上由shell扩展,这就是为什么less不会自己做的。

除了<exec>之外,<apply>适用于资源集合:

<apply executable="less" dir="." parallel="true" relative="true">
  <fileset dir="." includes="*.java"/>
</apply>

答案 1 :(得分:2)

您可以使用需要ant-contrib

foreach
<target name="view">
  <foreach target="call-less" param="file">
    <fileset dir="${src}" includes="**/*.java" />
  </foreach>
</target>

<target name="call-less">
    <exec executable="less">
        <arg value="${file}" />
    </exec>
</target>