我希望我的构建脚本能够在发布和开发环境中正常运行。
为此,我想在 ant 中定义一个属性,称之为(例如)fileTargetName
fileTargetName
如果可用,将从环境变量中获取它的值RELEASE_VER
,如果不可用,它将获取dev的默认值
感谢您帮助 ant<condition><value></condition>
并<property>
使其正常工作。
我希望我的构建脚本能够在发布和开发环境中正常运行。
为此,我想在 ant 中定义一个属性,称之为(例如)fileTargetName
fileTargetName
如果可用,将从环境变量中获取它的值RELEASE_VER
,如果不可用,它将获取dev的默认值
感谢您帮助 ant<condition><value></condition>
并<property>
使其正常工作。
Ant 文档中有关如何将环境变量放入属性的示例:
<property environment="env"/>
<echo message="Number of Processors = ${env.NUMBER_OF_PROCESSORS}"/>
<echo message="ANT_HOME is set to = ${env.ANT_HOME}"/>
在您的情况下,您将使用${env.RELEASE_VER}
.
然后对于条件部分,这里的文档说有三个可能的属性:
属性 描述 必填 property 要设置的属性的名称。是的 value 要将属性设置为的值。默认为“真”。不 else 将属性设置为的值 if 条件 否 评估为假。默认情况下,该属性将 保持未设置。自蚂蚁 1.6.3
把它放在一起:
<property environment="env"/>
<condition property="fileTargetName" value="${env.RELEASE_VER}" else="dev">
<isset property="env.RELEASE_VER" />
</condition>
您不需要为此使用 a <condition>
。Ant 中的属性是不可变的,所以你可以使用这个:
<property environment="env"/>
<property name="env.RELEASE_VER" value="dev"/>
如果RELEASE_VER
设置了环境变量,则属性将从环境中获取其值,第二<property>
条语句将不起作用。否则,该属性将在第一条语句后取消设置,第二条语句将其值设置为"dev"
。
我敢肯定有比这更简单的方法,但是如何:
<project name="example" default="show-props">
<property environment="env" />
<condition property="fileTargetName" value="${env.RELEASE_VER}">
<isset property="env.RELEASE_VER" />
</condition>
<condition property="fileTargetName" value="dev">
<not>
<isset property="env.RELEASE_VER" />
</not>
</condition>
<target name="show-props">
<echo>property is ${fileTargetName}</echo>
</target>
</project>