Ant taskdef需要什么类路径?

Ant taskdef需要什么类路径?,ant,taskdef,Ant,Taskdef,我是新来的蚂蚁。 有人能告诉我taskdef的“classpathref”的值是多少吗? 它将是类文件的路径吗? 如果是,可以给出一个示例,因为我尝试了该方法,但它对我无效。在taskdef中,classpathref应该是对先前定义的路径的引用。 该路径应该包含一个jar归档文件,其中保存了实现任务的类, 或者它应该指向文件系统中作为类层次结构根的目录。 如果类驻留在包中,则这将不是保存类的实际目录 这里有一个例子 MyTask.java: package com.x.y.z; import

我是新来的蚂蚁。 有人能告诉我taskdef的“classpathref”的值是多少吗? 它将是类文件的路径吗?
如果是,可以给出一个示例,因为我尝试了该方法,但它对我无效。

在taskdef中,
classpathref
应该是对先前定义的
路径的引用。
该路径应该包含一个jar归档文件,其中保存了实现任务的类,
或者它应该指向文件系统中作为类层次结构根的目录。
如果类驻留在包中,则这将不是保存类的实际目录

这里有一个例子

MyTask.java:

package com.x.y.z;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;

public class MyTask extends Task
{
    // The method executing the task
    public void execute() throws BuildException {
        System.out.println( "MyTask is running" );
    }
}
请注意,包名为
com.x.y.z
,因此在部署时- 假设这些类被放在名为
classes
的目录下-我们可能会在文件系统中看到这个类:

$ ls classes/com/x/y/z
MyTask.class
下面是一个使用该任务的简单build.xml:

<project name="MyProject" basedir=".">

<path id="my.classes">
    <pathelement path="${basedir}/classes" />
</path>
<taskdef name="mytask" classpathref="my.classes" classname="com.x.y.z.MyTask"/>
<mytask />

</project>
您可以使用显式的
类路径而不是“classpathref”执行类似操作,例如:

<property name="my.classes" value="${basedir}/classes" />
<taskdef name="mytask" classpath="${my.classes}" classname="com.x.y.z.MyTask"/>

<property name="my.classes" value="${basedir}/classes" />
<taskdef name="mytask" classpath="${my.classes}" classname="com.x.y.z.MyTask"/>