如果存在某个环境变量,我想不要在build.xml中调用目标。
使用Ant 1.7.0,以下代码不起作用:
<property environment="env"/>
<property name="app.mode" value="${env.APP_MODE}"/>
<target name="someTarget" unless="${app.mode}">
...
</target>
<target name="all" description="Creates app">
<antcall target="someTarget" />
</target>
目标“someTarget”执行是否存在环境变量APP_MODE
。
答案 0 :(得分:14)
unless
属性的文档说:
为了执行此目标而无法设置的属性的名称,或者评估为false的内容
因此,在您的情况下,您需要设置属性的名称,而不是对属性的评估:
<target name="someTarget" unless="app.mode">
...
</target>
答案 1 :(得分:0)
除非属性以简单的语言表明如果设置了属性,那么任务就不会被执行。对于前。
<target name="clean" unless="clean.not">
<delete dir="${src}" />
<property name="clean.not" value="true" />
<delete dir="${dest}" />
</target>
在这里,如果你调用干净的目标,它首先被执行然后它的值被设置。如果你想在脚本中再次调用它,那么它不会因为不能设置属性来执行任务。