我正在使用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
吗?
答案 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>