如何在ant build脚本中有一个排除列表?

时间:2010-09-26 22:54:45

标签: ant build

我正在尝试在我的ant构建脚本中添加一个排除列表。我有一个属性(让我们称之为build.excludes),它看起来像这样:

build.excludes=MyApp,AnotherApp

在我的构建脚本中,我有一个类似于以下内容的if语句:

<for list="${appsList}" delimiter="" trim="true" param="currentApp" keepgoing="yes">
    <sequential>
        <if>
         <!-- check if my current build item is in the build.excludes list -->
            <then>
                <!-- build of a project happens here -->
            </then>
        </if>
    </sequential>
</for>

我能想到的唯一方法是让一个for循环迭代我的build.excludes列表然后做一些事情(但我不知道在哪里放这个for循环...也许在宏中?)。

谢谢!

编辑:Ant 1.6.5并且无法升级。

1 个答案:

答案 0 :(得分:0)

您似乎正在使用ant-contrib for任务。 if支持与ant condition任务相同的元素,该任务在版本1.6.5中已经存在很长时间。

以下是一个例子:

<property name="build.excludes" value="MyApp,AnotherApp" />
<property name="appsList" value="MyApp,ExtraApp" />

<for list="${appsList}" delimiter="," trim="true" param="currentApp" keepgoing="yes">
    <sequential>
        <echo message="Checking @{currentApp}" />
        <if>
        <not>
            <contains string=",${build.excludes}," substring=",@{currentApp}," />
        </not>
        <then>
            <echo message="Building @{currentApp}" />
        </then>
        <else>
            <echo message="Not Building @{currentApp} - excluded" />
        </else>
        </if>
    </sequential>
</for>

给出:

 [echo] Checking MyApp
 [echo] Not Building MyApp - excluded
 [echo] Checking ExtraApp
 [echo] Building ExtraApp