ant在多个目标中重用fileset

时间:2013-12-20 10:35:55

标签: php ant

我正在尝试在多个目标中重用ant文件集。但是无法让它发挥作用:

<project name="calltivation" default="build">


    <fileset id="components" dir="${basedir}/components/com_calltivation">
        <include name="**/*.php"/>
        <!-- Exclude the unittest folder here  -->
        <exclude name="**/unittest/**"/>
        <modified/>
    </fileset>

    <fileset id="modules" dir="${basedir}/modules">
        <include name="**/*calltivation*/*.php"/>
        <modified/>
    </fileset>

    <fileset id="plugins" dir="${basedir}/plugins">
        <include name="**/*calltivation*/*.php"/>
        <modified/>
    </fileset>

   ....
   .......
   <target name="lint" description="Perform syntax check of sourcecode files">
        <apply executable="php" failonerror="true">
            <arg value="-l"/>

            <path rfid="components"/>
            <path rfid="modules"/>
            <path rfid="components"/>

        </apply>
    </target>

</project>

当我尝试运行它时:

路径不支持“rfid”属性

在目标中引用文件集的正确方法是什么?任何想法?

1 个答案:

答案 0 :(得分:0)

对于任何面临这个愚蠢问题的人:

将文件集包装在路径元素中:

 <path id="sources">
        <fileset id="components" dir="${basedir}/components/com_calltivation">
            <include name="**/*.php"/>
            <!-- Exclude the unittest folder here  -->
            <exclude name="**/unittest/**"/>
            <modified/>
        </fileset>

        <fileset id="modules" dir="${basedir}/modules">
            <include name="**/*calltivation*/*.php"/>
            <modified/>
        </fileset>

        <fileset id="plugins" dir="${basedir}/plugins">
            <include name="**/*calltivation*/*.php"/>
            <modified/>
        </fileset>
    </path>

然后使用refid:

<target name="lint" description="Perform syntax check of sourcecode files">
        <apply executable="php" failonerror="true">
            <arg value="-l"/>

            <path refid="sources"/>


        </apply>
    </target>

希望它可以帮助某人。或者至少我将来