我试图将属性变量的值与字符串进行比较,如下所示
<if>
<equals "${mat.projectName}"="seal">
<then>
完成后,我收到了以下信息。
元素类型“等于”必须后跟属性规范,“&gt;”要么 “/&gt;” 中
我正在使用eclipse框架来做到这一点。
答案 0 :(得分:2)
首先阅读手册:
http://ant.apache.org/manual/Tasks/conditions.html
显然,我们知道equals
的手册:
arg1要测试的第一个值 arg2要测试的第二个值
所以它应该是
<if>
<equals arg1="${mat.projectName}" arg2="seal" />
<then>
...
我建议您先阅读有关XML的指南,然后阅读Ant的手册。
<强>更新强>
Ant不提供 <if>
任务;它由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的网页:
答案 1 :(得分:0)
您的错误信息正是......
元素类型&#34;等于&#34;必须遵循属性规范,&#34;&gt;&#34;或&#34; /&gt;&#34;
你想要这个:
<if>
<equals arg1="${mat.projectName}" arg2="seal"/>
<then>
<yadda, yadda, yadda/>
</then>
</if>
这是XML,因此您需要带有值的参数。请查看此页面上的equals条件。它需要两个参数。
注意<if>
的格式。条件以/>
结尾。 <then>
是<if>
的子实体, if子句是<then>
子句的子实体。请注意,您基本上缩进了两次。
如果您正在执行不等于条件,则看起来像这样:
<if>
<not>
<equals arg1="${mat.projectName}" arg2="seal"/>
</not>
<then>
<yadda, yadda, yadda/>
</then>
</if>