7
如果Ant目标同时使用如果和除非,这是第一个评价?
例
什么是要先有鸡还是先有蛋? 。 。 。
<target name="prepare" if="chicken" unless="egg" >
<echo>Dinner time. Chicken is served!</echo>
</target>
蚂蚁会先评估鸡产?还是鸡蛋属性?
如果Ant目标同时使用如果和除非,这是第一个评价?
例
什么是要先有鸡还是先有蛋? 。 。 。
<target name="prepare" if="chicken" unless="egg" >
<echo>Dinner time. Chicken is served!</echo>
</target>
蚂蚁会先评估鸡产?还是鸡蛋属性?
这不是一个真正的评估问题,因为在目标被调用之前属性或者没有设置。
编辑:我看了看1.8.1源和逻辑如下:
if (!testIfAllows()) {
project.log(this, "Skipped because property '" + project.replaceProperties(ifCondition)
+ "' not set.", Project.MSG_VERBOSE);
return;
}
if (!testUnlessAllows()) {
project.log(this, "Skipped because property '"
+ project.replaceProperties(unlessCondition) + "' set.", Project.MSG_VERBOSE);
return;
}
所以unless
并不重要,除非if
通行证。但请记住,这些与评估属性无关。它只是看着他们,看看他们是否设置。
相关类是[org.apache.tools.ant.Target](http://svn.apache.org/repos/asf/ant/core/tags/ANT_181/src/main/org/apache/tools /ant/Target.java) – 2014-01-13 12:35:42