2010-12-01 43 views
0

J'écris un fichier de construction Ant pour exécuter des tests, et j'utiliser la ligne suivante sans aucun problème pour MXUnit:ANT ne parvient pas à trouver org.dbunit.ant.DbUnitTask

<taskdef name="mxunittask" classname="org.mxunit.ant.MXUnitAntTask" classpath="../mxunit/ant/lib/mxunit-ant.jar"/> 

Mais quand Je télécharger dbunit-2.4.8.jar de http://sourceforge.net/projects/dbunit/files/ et le mettre dans le même répertoire que mxunit-ant.jar, puis ajouté la ligne suivante dans le fichier de compilation ANT:

<taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask" classpath="../mxunit/ant/lib/dbunit-2.4.8.jar"/> 

pour que je vois un avertissement dans Eclipse qui dit:

taskdef Une classe nécessaire par classe org.dbunit.ant.DbUnitTask ne peut pas être trouvé : org/slf4j/LoggerFactory

Quand j'Extrayez le fichier jar il a le org.dbunit.ant. DbUnitTask classe .. donc je suis très confus quant à ce que se plaint ANT .. aucune idée de ce que le problème est?

+0

Dans votre première tâche, vous avez spécifié un chemin de classe relatif, dans le second, un absolu. Vous dites que les jars sont dans le même répertoire, mais il semble impossible que les deux chemins de classes se réfèrent à des jars dans un répertoire - pouvez-vous vérifier? –

+0

ah désolé j'ai essayé un tas de chemins en fait, je vais modifier ce qui précède. – erikvold

+0

Pour être plus clair, j'ai mis le fichier 'dbunit-2.4.8.jar' dans environ 5 endroits différents, et essayé des chemins absolus et relatifs, et rien n'a jamais fonctionné (ie: j'ai eu le même problème dans chaque cas). – erikvold

Répondre

1

Il semblerait que vous ayez besoin de vous assurer que tous les dependencies of DbUnit sont satisfaits, ainsi que d'installer le dbunit-2.4.8.jar.

L'erreur spécifique que vous citez avec la classe org/slf4j/LoggerFactory n'étant pas trouvée suggère que vous n'avez pas besoin du SLF4J classes. (La dernière version de slf4j-api.jar est probablement nécessaire.)

+0

qui a du sens, où devrais-je mettre le pot (s) pour SLF4J? – erikvold

+0

@Eric - où cela semble approprié - même endroit que les autres pots? Vous devrez les ajouter au chemin de classe utilisé par Ant, ou à celui spécifié dans le taskdef. –

+0

"Vous devrez les ajouter au chemin de classe utilisé par Ant, ou à celui spécifié dans le taskdef." Comment puis-je faire l'un ou l'autre? – erikvold