我正在尝试将属性变量的值与字符串进行比较,如下所示
<if>
<equals "${mat.projectName}"="seal">
<then>
完成后,我收到以下消息。
元素类型 "equals" 必须后跟属性规范、">" 或 "/>"
我正在使用 Eclipse 框架来执行此操作。
我正在尝试将属性变量的值与字符串进行比较,如下所示
<if>
<equals "${mat.projectName}"="seal">
<then>
完成后,我收到以下消息。
元素类型 "equals" 必须后跟属性规范、">" 或 "/>"
我正在使用 Eclipse 框架来执行此操作。
首先阅读手册:
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>
.
例如,我将 ant-contrib.jar 放在我项目的 lib 目录 (${basedir}/lib) 中,所以我可以编写以下内容:
<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>