使用默认值从环境中定义ant属性
我希望我的构build脚本在发布和开发环境中正常工作。
为此,我想在ant中定义一个属性,将其称为(例如) fileTargetName
fileTargetName
将从环境variablesRELEASE_VER
获取它的值(如果它是可用的),如果它不可用,它将获得dev的默认值
帮助与ant<condition><value></condition>
& <property>
得到它的工作表示赞赏。
Ant文档中有关如何将环境variables放入属性的示例:
<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}
。
然后对于条件部分, 这里的文档说有三个可能的属性:
属性描述必需 属性要设置的属性的名称。 是 值将属性设置为的值。 默认为“true”。 没有 其他如果条件No,则设置属性的值 评估为假。 默认情况下,属性会 保持未定。 从Ant 1.6.3开始
把它放在一起:
<property environment="env"/> <condition property="fileTargetName" value="${env.RELEASE_VER}" else="dev"> <isset property="env.RELEASE_VER" /> </condition>
你不需要为此使用<condition>
。 Ant中的属性是不可变的 ,所以你可以使用这个:
<property environment="env"/> <property name="env.RELEASE_VER" value="dev"/>
如果设置了RELEASE_VER
环境variables,那么属性将从环境中获取它的值,而第二个<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>