Xml Ant构建脚本-如果条件检查具有多个值

Xml Ant构建脚本-如果条件检查具有多个值,xml,build,ant,Xml,Build,Ant,我需要比较相关环境的列表,并在任何环境与传递的参数环境匹配时执行该操作。 下面的代码每次比较每个值。我不想为每个环境编写代码,因为我需要对一组环境执行相同的操作 如何比较所有环境(DEV1、DEV2、DEV3) <if> <equals arg1=“${env}” arg2="DEV" /> <!-- Need to compare with DEV1, DEV2, DEV3 --> <then> <echo>Dev relat

我需要比较相关环境的列表,并在任何环境与传递的参数环境匹配时执行该操作。 下面的代码每次比较每个值。我不想为每个环境编写代码,因为我需要对一组环境执行相同的操作

如何比较所有环境(DEV1、DEV2、DEV3)

<if>
<equals arg1=“${env}” arg2="DEV" /> <!-- Need to compare with DEV1, DEV2, DEV3 -->
<then>
    <echo>Dev related env </echo> 
</then>
<elseif>
    <equals arg1="${env}" arg2=“TST” /> <!-- Need to compare with TST, E2E, UAT -->
    <then>
        <echo>Test related env </echo> 
    </then>
</elseif>

开发相关环境
测试相关环境

首先,我强烈建议尽可能避免使用ant contrib(提供if/else块、for循环等的第三方库)。这类事情最好使用Ant固有的目标级别条件和依赖项来完成。下面是一个如何实现这一点的示例

<target name="build" depends="development,test" />

<target name="init">
    <condition property="DEV">
        <or>
            <equals arg1="${env}" arg2="DEV1" />
            <equals arg1="${env}" arg2="DEV2" />
            <equals arg1="${env}" arg2="DEV3" />
        </or>
    </condition>

    <condition property="TST">
        <or>
            <equals arg1="${env}" arg2="TST" />
            <equals arg1="${env}" arg2="E2E" />
            <equals arg1="${env}" arg2="UAT" />
        </or>
    </condition>
</target>

<target name="development" depends="init" if="DEV">
    <echo message="Dev related env" />
</target>

<target name="test" depends="init" if="TST">
    <echo message="Dev related env" />
</target>

首先,我强烈建议尽可能避免使用ant contrib(提供if/else块、for循环等的第三方库)。这类事情最好使用Ant固有的目标级别条件和依赖项来完成。下面是一个如何实现这一点的示例

<target name="build" depends="development,test" />

<target name="init">
    <condition property="DEV">
        <or>
            <equals arg1="${env}" arg2="DEV1" />
            <equals arg1="${env}" arg2="DEV2" />
            <equals arg1="${env}" arg2="DEV3" />
        </or>
    </condition>

    <condition property="TST">
        <or>
            <equals arg1="${env}" arg2="TST" />
            <equals arg1="${env}" arg2="E2E" />
            <equals arg1="${env}" arg2="UAT" />
        </or>
    </condition>
</target>

<target name="development" depends="init" if="DEV">
    <echo message="Dev related env" />
</target>

<target name="test" depends="init" if="TST">
    <echo message="Dev related env" />
</target>