使用ant-contrib,如何使用“endsWith”?

时间:2012-12-02 14:28:25

标签: ant ant-contrib

ant-contrib最新版本是ant-contrib-1.0b3.jar

http://ant-contrib.sourceforge.net/tasks/tasks/more_conditions.html

此文档显示endsWith条件

但我使用ant 1.8.2和ant-contrib-1.0b3.jar,我找不到endsWith条件

    <if>

        <endswith string="D:\FeiLong Soft\Essential\Development\repository\org\springframework\spring-beans" with="spring-beans" />
        <then>
            <echo>equals</echo>
        </then>
        <else>
            <echo>not equals</echo>
        </else>
    </if>

但结果:

BUILD FAILED
E:\Workspaces\feilong\feilong-platform\tools\feilong-tools-ant\build.xml:32: if
doesn't support the nested "endswith" element.

Total time: 1 second

2 个答案:

答案 0 :(得分:4)

检查来自antcontrib(版本1.0b2或1.0b3)的来源,特别是net/sf/antcontrib/antcontrib.properties../antlib.xml 您会看到,虽然在antcontrib manual中提到过startsWithendsWith条件。

这两个条件来自Antelope project,它提供了运行ant和几个ant任务的UI。 多年前有计划将Antelope与AntContrib合并,见Antelope Tasks Merging with AntContrib和Antelope项目网站:

  

羚羊项目还提供了一系列附加任务   提供分发的标准任务中没有的功能   蚂蚁。正在进行将Antelope任务与AntContrib合并的工作   项目。
[...]蚂蚁 - 贡献项目是一系列任务   (在某一点上,可能是类型和其他工具)Apache Ant。一些   羚羊任务现在是该项目的一部分。

但不知何故,这些合并计划停滞不前,从未完成,Antcontrib似乎已经死了 - latest release 1.0b3 from 2006-11-02

无论如何,您可以将ant matches condition与antcontrib一起使用:

<project>
 <!-- Import AntContrib -->
 <taskdef resource="net/sf/antcontrib/antlib.xml"/>
 <property name="foo" value="D:\FeiLong Soft\Essential\Development\repository\org\springframework\spring-beans"/>

 <if>
 <matches string="${foo}" pattern="^.+spring-beans$"/>
  <then>
   <echo>equals</echo>
  </then>
  <else>
   <echo>not equals</echo>
  </else>
 </if>
</project>

Antelope ant tasks

答案 1 :(得分:0)

使用&#34; startwith&#34;我遇到了同样的问题。并没有找到解决方案。 我不明白&#34;包含&#34;工作,但&#34; startwith&#34; &#34; endwith&#34;别&#39;吨

<if>
    <contains string="a sample string" substring="sample" />
    <then>
        <echo>match</echo>
    </then>
    <else>
        <echo>not match</echo>
    </else>
</if>