我正在尝试将属性变量的值与以下字符串进行比较
<if>
<equals "${mat.projectName}"="seal">
<then>
当这样做时,我得到以下消息。
元素类型"必须后跟属性规范">"或"/",
先阅读说明书:
http://ant.apache.org/manual/Tasks/conditions.html显然,从equals
的手册中我们知道:
arg1第一个要测试的值arg2第二个要测试的值
所以应该是
<if>
<equals arg1="${mat.projectName}" arg2="seal" />
<then>
...
我建议您先阅读有关XML的指南,然后再阅读Ant的手册。
更新:
<if>
任务不是Ant提供的;它由Ant-Contrib提供。所以你需要<taskdef>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="lib/ant-contrib.jar"/>
</classpath>
</taskdef>
更多信息,您可以查看taskdef
的手册页,以及Ant-contrib的网页:
正是你的错误信息所说的…
元素类型"equals"必须后跟属性说明">"或"/>"
你想要这个:
<if>
<equals arg1="${mat.projectName}" arg2="seal"/>
<then>
<yadda, yadda, yadda/>
</then>
</if>
这是XML,所以需要带值的参数。看看这一页上的等号条件。它有两个参数。
注意<if>
的格式。条件以/>
结束。<then>
是<if>
的子实体,if子句是<then>
子句的子实体。注意,你基本上缩进了两次。
如果你在做一个不等于条件,它看起来像这样:
<if>
<not>
<equals arg1="${mat.projectName}" arg2="seal"/>
</not>
<then>
<yadda, yadda, yadda/>
</then>
</if>