我的ant-contrib-0.3中没有antlib.xml

时间:2015-12-18 08:25:53

标签: ant ant-contrib

我正在尝试使用任务for。我尝试了这个任务定义:

    <taskdef resource="net/sf/antcontrib/antlib.xml">
        <classpath>
            <pathelement location="${infrastructure-base-dir}/apache-ant-1.9.6/lib/ant-contrib-0.3.jar"/>
        </classpath>
    </taskdef>

但没有奏效。出现此消息:

  

问题:无法为

创建任务或类型

所以我决定解压缩ant-contrib-0.3.jar来看看里面是什么。此路径中没有antlib.xmlnet/sf/antcontrib/。那么,为了让任务工作,你会建议我什么?

2 个答案:

答案 0 :(得分:1)

试试这个:

  1. 在build.xml中

    <taskdef name="for-contrib" classname="net.sf.antcontrib.logic.ForTask" classpath="${basedir}/lib/ant-contrib-1.0b3.jar" />

  2. 将jar文件放在正确的位置,即与build.xml处于同一级别的lib文件夹中。

  3. 根据需要使用for,即

    <for-contrib list="a,b,c,d,e" param="letter"> <sequential> <echo>Letter @{letter}</echo> </sequential> </for>

  4. For task documentation

答案 1 :(得分:0)

以下构建文件将自动安装Ant contrib

<project name="ant-contrib-tasks" default="build">

    <available classname="net.sf.antcontrib.logic.ForTask" property="contrib.installed"/>

    <target name="install-contrib" unless="contrib.installed">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get dest="${user.home}/.ant/lib/ant-contrib.jar" src="http://search.maven.org/remotecontent?filepath=ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar"/>
        <fail message="Ant Contrib installed - Run Ant again"/>
    </target>

    <target name="build" depends="install-contrib">
      <taskdef resource="net/sf/antcontrib/antlib.xml"/>

        <for param="file">
            <fileset dir="." includes="*.txt"/>
            <sequential>
                <echo message="Found file @{file}"/>
            </sequential>
        </for>
    </target>

</project>