91 votes

erreur maven : le paquet org.junit n'existe pas

J'essaie de créer la javadoc avec maven et cela échoue. Il échoue également lors de la vérification.

mvn verify

J'obtiens l'erreur suivante :

(...)
    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR : 
    [INFO] -------------------------------------------------------------
    [ERROR] /home/miquel/creaveu/createOmegaMatrix/src/main/java/edu/url/salle/gtm/hnm/dataStructures/HFrame.java:[6,23]
package org.junit does not exist
    [ERROR] /home/miquel/creaveu/createOmegaMatrix/src/main/java/edu/url/salle/gtm/hnm/dataStructures/HFrame.java:[6,0]
static import only from classes and interfaces
    (···)

Dans mon fichier pom.xml, j'ai les lignes suivantes :

<dependency>
  <groupId>org.junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.2</version>
  <scope>test</scope>
</dependency>

et mon dépôt local contient le fichier jar de junit :

miquel@ubuntu:~/creaveu/createOmegaMatrix$ ls -l /home/miquel/.m2/repository/org/junit/junit/4.8.2/
total 248
**-rw-r--r-- 1 miquel miquel 237344 2012-09-13 11:01 junit-4.8.2.jar**
-rw-r--r-- 1 miquel miquel    236 2012-09-13 11:13 junit-4.8.2-javadoc.jar.lastUpdated
-rw-r--r-- 1 miquel miquel      0 2012-09-13 11:13 junit-4.8.2-javadoc.jar-not-available
-rw-r--r-- 1 miquel miquel    458 2012-09-12 18:35 junit-4.8.2.pom
-rw-r--r-- 1 miquel miquel    236 2012-09-13 11:13 junit-4.8.2-sources.jar.lastUpdated
-rw-r--r-- 1 miquel miquel      0 2012-09-13 11:13 junit-4.8.2-sources.jar-not-available
-rw-r--r-- 1 miquel miquel    163 2012-09-13 11:22 _maven.repositories
miquel@ubuntu:~/creaveu/createOmegaMatrix$

Le code est correct car dans mon ordinateur portable, auquel je n'ai pas accès maintenant, je peux l'exécuter :

mvn javadoc:javadoc
mvn verify

sans aucun problème, et les tests fonctionnent également dans l'IDE Eclipse.

182voto

Andrew Logvinov Points 7291

Ok, vous avez déclaré junit dépendance pour test uniquement (celles qui sont en src/test/java mais vous essayez de l'utiliser dans main (celles qui sont en src/main/java ).

Soit vous ne l'utilisez pas dans les classes principales, soit vous le supprimez. <scope>test</scope> .

38voto

Siwei Shen Points 5814

J'ai corrigé cette erreur en insérant ces lignes de code :

<dependency>
  <groupId>junit</groupId>     <!-- NOT org.junit here -->
  <artifactId>junit-dep</artifactId>
  <version>4.8.2</version>
  <scope>test</scope>
</dependency>

dans le nœud <dépendances>.

Pour plus de détails, voir : http://mvnrepository.com/artifact/junit/junit-dep/4.8.2

15voto

Grubhart Points 314

Si vous utilisez Eclipse, surveillez vos dépendances POM et votre dépendance Eclipse buildpath sur junit

Si vous choisissez d'utiliser Junit4, eclipse crée des TestCase en utilisant le package org.junit mais votre POM utilise par défaut Junit3 (package junit.framework), c'est la cause, comme sur cette image :

see JUNIT conflict

Il suffit de mettre à jour votre dépendance Junit dans votre fichier POM en Junit4 ou votre BuildPath Eclipse en Junit3.

10voto

nix Points 142

Dans mon cas, le coupable était de ne pas distinguer les dossiers main et test sources dans le fichier pom.xml (généré par le projet maven d'eclipse).

<build>
    <sourceDirectory>src</sourceDirectory>
    ....
</build>

Si vous ne tenez pas compte des paramètres par défaut du dossier source dans le fichier pom, vous devez explicitement définir les dossiers source principal ET test !!!!

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    ....
</build>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X