我正在尝试使用任务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.xml
:net/sf/antcontrib/
。那么,为了让任务工作,你会建议我什么?
答案 0 :(得分:1)
试试这个:
在build.xml中
<taskdef name="for-contrib" classname="net.sf.antcontrib.logic.ForTask" classpath="${basedir}/lib/ant-contrib-1.0b3.jar" />
将jar文件放在正确的位置,即与build.xml处于同一级别的lib文件夹中。
根据需要使用for,即
<for-contrib list="a,b,c,d,e" param="letter">
<sequential>
<echo>Letter @{letter}</echo>
</sequential>
</for>
答案 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>