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

fei*_*ong 5 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>
Run Code Online (Sandbox Code Playgroud)

但结果:

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
Run Code Online (Sandbox Code Playgroud)

Reb*_*bse 5

net/sf/antcontrib/antcontrib.properties特别是在检查 antcontrib(版本 1.0b2 或 1.0b3)的源代码时../antlib.xml ,您会发现没有startsWith或条件,尽管antcontrib 手册endsWith中提到了这一点。

这两个条件源自Antelope 项目,该项目提供了一个用于运行 ant 和多个 ant 任务的 UI。几年前,有计划将 Antelope 与 AntContrib 合并,请参阅Antelope 任务与 AntContrib 合并和 Antelope 项目站点:

Antelope 项目还提供了一组附加任务,这些任务提供了与 Ant 一起分发的标准任务中没有的功能。将 Antelope 任务与 AntContrib 项目合并的工作正在进行中。
[...]
Ant-Contrib 项目是 Apache Ant 的任务(有时可能是类型和其他工具)的集合。一些羚羊任务现在是该项目的一部分。

但不知何故,这些合并计划停滞不前,从未正确完成,Antcontrib 似乎也死了 - 2006 年 11 月 2 日最新版本 1.0b3

无论如何,您可以将ant 匹配条件与 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>
Run Code Online (Sandbox Code Playgroud)

或者羚羊蚁任务