1

我正在使用 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's,但是有没有办法用一个来做到这一点arg

4

2 回答 2

3

glob 在类 Unix 上由 shell 扩展,这*就是为什么 less 不自己做的原因。

除此之外,<exec>还有<apply>哪些适用于资源集合:

<apply executable="less" dir="." parallel="true" relative="true">
  <fileset dir="." includes="*.java"/>
</apply>
于 2015-05-22T04:06:27.003 回答
2

您可以使用foreach需要ant-contrib

<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>
于 2015-05-21T19:01:27.533 回答