Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ant脚本中使用if语句时出现异常_Ant_Ant Contrib - Fatal编程技术网

在ant脚本中使用if语句时出现异常

在ant脚本中使用if语句时出现异常,ant,ant-contrib,Ant,Ant Contrib,我试图将属性变量的值与字符串进行比较,如下所示 <if> <equals "${mat.projectName}"="seal"> <then> 当这样做的时候,我得到了以下信息 元素类型“equals”后面必须跟属性规范“>”或 “/>” 我正在使用eclipse框架来实现这一点。请先阅读手册: 显然,从手册中我们知道等于: arg1要测试的第一个值 arg2要测试的第二个值 应该如此 <if> <equals ar

我试图将属性变量的值与字符串进行比较,如下所示

<if>
    <equals "${mat.projectName}"="seal">
<then>

当这样做的时候,我得到了以下信息

元素类型“equals”后面必须跟属性规范“>”或 “/>”

我正在使用eclipse框架来实现这一点。

请先阅读手册:

显然,从手册中我们知道
等于

arg1要测试的第一个值 arg2要测试的第二个值

应该如此

<if>
    <equals arg1="${mat.projectName}" arg2="seal" />
<then>
    ...

...
我建议您先阅读XML指南,然后再阅读Ant手册


更新:

任务不是由Ant提供的;它由Ant Contrib提供。所以你需要

例如,我将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>

是的,我认出了。非常感谢。但即使在更改之后,我也会遇到异常:BUILD FAILED F:\Projects\Seal\BUILD.xml:308:问题:如果我应该使用任何jar,则无法创建任务或类型?原因:名称未定义。措施:检查拼写。操作:检查是否已声明任何自定义任务/类型。措施:检查是否发生了任何/声明。顺便说一下,对于taskdef问题,您可以轻松使用google获得答案。像这样的问题很可能会被否决。所以,总是谷歌优先。@coolcfan:+1。你让这个问题变得有用,并阻止了它的投票
<if>
    <not>
        <equals arg1="${mat.projectName}" arg2="seal"/>
    </not>
    <then>
        <yadda, yadda, yadda/>
    </then>
</if>