Ant非递归文件集

时间:2013-05-07 10:39:59

标签: ant jenkins

这是我的目录结构:

module/
    a/
        foo.php
        b/
            bar.php
    b/
    c/

我想为module /下的每个目录运行一个命令,但不是递归的,所以只应该包含这些命令:

a/
b/
c/

如果我这样做:

<target name="foo">
    <apply executable="ls">
        <arg value="-l" />
        <fileset dir="${basedir}/module/">
        </fileset>
    </apply>
</target>

这将以递归方式为模块下的每个目录和文件运行。

1 个答案:

答案 0 :(得分:5)

您只想在第一级目录中执行此操作吗?

<target name="foo">
    <apply executable="ls">
        <arg value="-l" />
        <dirset dir="${basedir}/module/">
            <include name="*"/>
        </dirset>
    </apply>
</target>

请注意<include>。我只指定我<dirset/>中指定的目录下的目录。如果我说<include names="**/*"/>,它将指定所有目录。

当您处理目录而非文件时,请使用<dirset/>而不是<fileset/><fileset/>用于指定文件。 <dirset/>用于指定目录。