2012-12-12 25 views
9

Tất cả -Nhiệm vụ kiến ​​taskdef không thể tìm thấy

Tôi đang theo hầu hết các hướng dẫn đơn giản nhất trên trang này:

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

Tuy nhiên, khi tôi cố gắng để thực hiện mục tiêu "chính" Tôi nhận được lỗi này trong netbeans:

taskdef class dec102012.MyAntTask cannot be found using the classloader AntClassLoader[] 

Nhưng điều này lỗi không có ý nghĩa vì lớp Java mới của tôi mà kéo dài "Task" trông như thế này:

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; 
    } 
} 

Phần liên quan trong build.xml của tôi trông giống như:

<taskdef name="mytask" classname="dec102012.MyAntTask" classpath="dec102012"/> 

<target name="main"> 
    <mytask message="Hello World! MyVeryOwnTask works!"/> 
</target> 
+0

Xóa 'classpath =" dec102012 "' –

+0

Tôi nhận được lỗi tương tự khi thực hiện điều đó. – user1068636

Trả lời

11

Vấn đề là Ant Classloader cần biết vị trí của tệp * .class.

Khi tôi thay đổi build.xml để trông giống như:

<taskdef name="mytask" classname="dec102012.MyAntTask" classpath="build/classes"/> 

    <target name="main"> 
    <mytask message="Hello World! MyVeryOwnTask works!"/> 
    </target> 

nó làm việc (tức là nó in ra thông điệp Hello World).

Các vấn đề liên quan