2010-07-14 5 views
0

Asumming J'ai un build.xml qui est déjà donné. On m'a ordonné d'ajouter ma propre tâche pour vérifier certaines conditions et laisser la construction échouer si elle n'est pas définie.Ant <taskdef> problème - nom de classe non trouvé

Dans ce fichier build.xml, certaines tâches sont déjà définies. Alors j'ai pensé que je pouvais simplement écrire ma propre tâche, la placer dans un même paquet comme les autres et ça marchera.

<property name"build-dir" value="../base-build" /> 

<path id="classpath.build"> 
    <fileset dir="${build-dir}/lib" includes="*.jar" /> 
</path> 

<taskdef name="givenTask" classname="test.build.somePackage.GivenTask" classpathref="classpath.build" /> 

<taskdef name="myAddedTask" classname="test.build.someOtherPackage.MyAddedTask" classpathref="classpath.build" /> 

Le fichier build.xml se trouve dans le répertoire base-build et les packages dans build-tools. Donc ma question est: Si je copie le taskdef comme ci-dessus et ça ne fonctionne pas, quelle est la raison de cela? Ai-je besoin d'ajouter une référence au chemin ou quelque chose?

+1

Est-ce que les signes égal après 'classname' (par exemple, devraient être' classname = "test.build ...." ') manquent vraiment ou est-ce juste une faute de frappe dans votre message? –

+0

Désolé, ces erreurs où juste des fautes de frappe. Je les ai réparés. – mpist

+0

Lorsque vous dites "ne fonctionne pas", Ant signale-t-il une erreur? Si ce n'est pas le cas, vous pouvez essayer d'exécuter "ant -v" pour voir quel chemin Ant fait référence. – aberrant80

Répondre

2

classname"test.package.build.someOtherPackage.MyAddedTask" - nous avons deux erreurs ici, peut-être des fautes de frappe: d'abord, nous manquons un = après classname, en second lieu, le nom du package n'est pas vaild parce qu'il contient un mot clé java (package).

Si l'extrait a été copié et collé à partir du code d'origine, vous devez le réparer.