包含/排除构建文件

时间:2011-02-08 22:52:09

标签: nant

你是怎么做到的?给定几个构建文件,我只想包含目标(从命令行指定)所在的文件。使用target::exists似乎不起作用。感谢。

    <target name="*">
        <property name="curr.target" value="${target::get-current-target()}"/>

        <nant target="${curr.target}">
            <buildfiles>                    
                <include name="*.build" if="${target::exists(curr.target)}"/>
                <!-- avoid recursive execution of current build file-->
                <exclude name="${project::get-buildfile-path()}" />                    
            </buildfiles>                               
        </nant>
    </target>

使用robaker的解决方案,我的最终构建文件如下所示。如果在某个构建文件中找不到目标(与我之前的代码不同),它不会再失败。

<project>
   <include buildfile="A.build"/>
   <include buildfile="B.build"/>

   <target name="*">
      <nant target="${target::get-current-target()}"/>
   </target>
</project>

1 个答案:

答案 0 :(得分:1)

为什么不直接使用include task来包含所有子构建脚本?