全部 -
我正在遵循此页面上最简单的说明:
http://ant.apache.org/manual/develop.html
但是,当我尝试执行目标“main”时,我在 netbeans 中遇到了这个错误:
taskdef class dec102012.MyAntTask cannot be found using the classloader AntClassLoader[]
但是这个错误没有意义,因为我扩展“任务”的新 Java 类看起来像这样:
package dec102012;
import org.apache.tools.ant.BuildException;
public class MyAntTask extends org.apache.tools.ant.Task{
private String msg;
// The method executing the task
public void execute() throws BuildException {
System.out.println(msg);
}
// The setter for the "message" attribute
public void setMessage(String msg) {
this.msg = msg;
}
}
我的 build.xml 中的相关部分如下所示:
<taskdef name="mytask" classname="dec102012.MyAntTask" classpath="dec102012"/>
<target name="main">
<mytask message="Hello World! MyVeryOwnTask works!"/>
</target>
最佳答案
问题是 Ant 类加载器需要知道 *.class 文件所在的位置。
一旦我将 build.xml 更改为如下所示:
<taskdef name="mytask" classname="dec102012.MyAntTask" classpath="build/classes"/>
<target name="main">
<mytask message="Hello World! MyVeryOwnTask works!"/>
</target>
它起作用了(即打印出 Hello World 消息)。
关于java - 找不到 taskdef ant 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13831194/