以下是Ant任务示例。
<target name="evalTask">
<condition property="conditionValue" >
<mycustomTask:evaluateCondition/>
</condition>
</target>
<target name="checkAndUpdateFlag" unless="conditionValue">
<property name="isEnabled" value="true"/>
</target>
<target name="targetA" depends="checkAndUpdateFlag" unless="conditionValue">
<echo message="Do something if the conditionValue is set" />
</target>
<target name="targetB">
<echo message=" Value of isEnabled : ${isEnabled} />
</target>
在上面的示例目标&#34; evalTask&#34;将设置属性&#34; conditionValue&#34;是我的自定义任务&#34; evalauateCondition返回true。
目标&#34; targetA&#34;只有当属性&#34; conditionValue&#34;已设定。哪个我工作正常。但该物业&#34; isEnabled&#34; in&#34; checkAndUpdateFlag&#34;没有设置或它永远不会进入内部&#34; checkAndUpdateFlag&#34;目标,我仍然得到&#34; isEnabled&#34;内部物业价值&#34; targetB&#34; as $ {isEnabled}。基本上&#34; isEnabled&#34;从未设定过。
下面是我用来运行此目标的ant命令。
ant targetA targetB
关于为什么我没有在targetB中获得isEnabled值的任何建议?
答案 0 :(得分:0)
在您的示例中,evalTask
目标永远不会运行,因此永远不会设置conditionValue
属性。
由于未设置conditionValue
属性,checkAndUpdateFlag
目标将无法运行:
<target name="checkAndUpdateFlag" unless="conditionValue">
如果未设置unless="conditionValue"
属性,<target name="checkAndUpdateFlag">
会告诉Ant跳过conditionValue
。
将depends
添加到checkAndUpdateFlag
:
<target name="checkAndUpdateFlag" unless="conditionValue" depends="evalTask">
<!-- ... -->
首先在命令行上调用evalTask
目标:
ant evalTask targetA targetB