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

最佳答案

检查来自 antcontrib(版本 1.0b2 或 1.0b3)的源时,尤其是 net/sf/antcontrib/antcontrib.properties../antlib.xml你会看到,没有 startsWithendsWith 条件,尽管它在 antcontrib manual 中提到。
这两个条件源自 Antelope project ,它提供了一个用于运行 ant 和多个 ant 任务的 UI。
多年前就有计划将 Antelope 与 AntContrib 合并,请参阅 Antelope Tasks Merging with AntContrib 和 Antelope 项目站点:



但不知何故,那些合并计划停滞不前,从未正确完成,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

关于ant - 使用 ant-contrib,如何使用 "endsWith"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13670197/

10-09 07:41