<>在Ant中引用外部任务有两种情况:
<!--[if !supportLists]-->一、<!--[endif]-->Ant定义的可选任务
这些任务可以说是半官方的任务了,任务实际上已经写好了,不过该任务依赖的资源主要就是jar文件没有跟Ant一起发布。例如FTP任务就是这种情况。打开文档<ant install dir>\docs\manual\install.html#librarydependencies,原来还要到jakarta.apache.org下载1.1.0或更高版本的commons-net 和2.0.8或更高版本的jakarta-oro。注意这是针对Ant1.6说的,不同的Ant版本使用的外部库可能不一样。把下载到的commons-net-1.1.0.jar放到<ant install dir>\lib目录下,OK,你现在就可以使用FTP了:
<><ftp server="ftp.apache.org"
remotedir="incoming"
userid="anonymous"
password="me@myorg.com"
depends="yes" >
<fileset dir="htdocs/manual"/>
</ftp> <><!--[if !supportLists]-->
二、<!--[endif]-->一般的外部任务
这些任务同样需要下载所需的jar文件,放到<ant install dir>\lib目录下,同时在build.xml中需要定义这些外部任务。在http://ant.apache.org/external.html上有一个Timer任务,在下载jar后我们可以这样引用
build.xml:
<?xml version="1.0" ?>
<project name="testTimer" default="test">
<taskdef name="timer" classname="de.jeckle.AntExtension.Timer"/>
<> <target name="test">
<timer verbose="true">
<echo>test1</echo>
</timer>
<timer name="timer2">
<echo>test2</echo>
<timer name="timer3" verbose="true">
<echo>test3</echo>
</timer>
<echo>test4</echo>
</timer>
</target>
<></project>
最后说说设置类路径的几种办法:
<!--[if !supportLists]-->1. <!--[endif]-->把jar文件放到Ant安装目录的lib目录下,Ant会自动装载
<!--[if !supportLists]-->2. <!--[endif]-->设置环境变量CLASSPATH,包含要引用的jar文件
<!--[if !supportLists]-->3. <!--[endif]-->在TaskDef中指定classpath
<taskdef name="timer" classname="de.jeckle.AntExtension.Timer" classpath=”../lib/timer.jar”/>