2012-12-12 5 views
9

Tutto -Il compito formica taskdef non può essere trovato

Sto seguendo le istruzioni più semplici in questa pagina:

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

Tuttavia, quando provo ad eseguire il target "principale" I questo errore in NetBeans:

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

Ma questo errore non ha senso perché la mia nuova classe Java che estende "Task", si presenta così:

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

La quota di competenza nel mio build.xml assomiglia:

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

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

Rimuovere il 'classpath =" dec102012 "' –

+0

Ricevo lo stesso errore quando lo faccio. – user1068636

risposta

11

Il problema è la formica Classloader ha bisogno di sapere dove si trova il file * .class.

Una volta ho cambiato il build.xml per assomigliare:

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

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

ha funzionato (vale a dire è stampato il messaggio Ciao Mondo).