Ant除非属性不起作用?

时间:2011-05-04 08:12:10

标签: java ant

我必须不正确理解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}目录时,我希望在项目包和财务包中的类中看不到任何类,但是它似乎排除了这两个包?

1 个答案:

答案 0 :(得分:10)

对于Ant 1.7及之前的版本,ifunless属性仅检查是否设置了属性。他们实际上没有检查价值。实际上,您可以将其设置为任何内容,并且if的评估为true,unless的评估为false。同样,如果您根本不设置它,if将为false,unless则为true。

在任何一种情况下,我都不知道if可以使用unless<exclude>