任务定义Ant任务无法找到。

12

全部 -

我正在遵循这个页面上最简单的指导:

http://ant.apache.org/manual/develop.html

然而,当我尝试在NetBeans中执行目标“main”时,出现以下错误:
taskdef class dec102012.MyAntTask cannot be found using the classloader AntClassLoader[]
但是这个错误没有意义,因为我新建的Java类继承了“Task”,代码如下:
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>

移除 classpath="dec102012" - Ismail Badawi
当我这样做时,我得到了相同的错误。 - user1068636
1个回答

19
问题在于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”消息)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接