我必须不正确理解unless
属性。我有一个属性文件,其属性如下:
module.project.enabled=false
module.finance.enabled=true
在我的Ant构建文件中,我有以下内容
<echo message="Finance module enabled is ${module.finance.enabled}"/>
<echo message="Project module enabled is ${module.project.enabled}"/>
<javac srcdir="src" destdir="${classes}" debug="true">
<classpath>
<pathelement path="src"/>
<fileset dir="web/WEB-INF/lib" includes="*.jar"/>
<fileset dir="lib" includes="*.jar"/>
<fileset dir="${GWT.HOME}" includes="gwt-user.jar,gwt-servlet.jar"/>
</classpath>
<exclude name="bla/finance/*.java" unless="${module.finance.enabled}"/>
<exclude name="bla/project/*.java" unless="${module.project.enabled}"/>
</javac>
运行我的蚂蚁目标时,似乎可以读取属性
[echo] Finance module enabled is true
[echo] Project module enabled is false
但是当我查看${classes}
目录时,我希望在项目包和财务包中的类中看不到任何类,但是它似乎排除了这两个包?
答案 0 :(得分:10)
对于Ant 1.7及之前的版本,if
和unless
属性仅检查是否设置了属性。他们实际上没有检查价值。实际上,您可以将其设置为任何内容,并且if
的评估为true,unless
的评估为false。同样,如果您根本不设置它,if
将为false,unless
则为true。
在任何一种情况下,我都不知道if
可以使用unless
和<exclude>
。