web-dev-qa-db-fra.com

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

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

mvn verify

Je reçois 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 référentiel local contient le fichier jar 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 sur mon ordinateur portable, auquel je n’ai pas accès, je peux exécuter:

mvn javadoc:javadoc
mvn verify

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

62
theme

Ok, vous avez déclaré la dépendance junit pour les classes test uniquement (celles qui sont dans src/test/Java mais vous essayez de les utiliser dans les classes main (celles qui sont dans src/main/Java).

Ne l'utilisez pas dans les classes principales ou supprimez <scope>test</scope>.

125
Andrew Logvinov

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>
</dependency>

dans le noeud <dependencies>. 

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

26

si vous utilisez Eclipse, surveillez vos dépendances POM et votre dépendance du chemin de construction Eclipse sur junit

si vous sélectionnez utiliser Junit4 Eclipse, créez TestCase en utilisant le package org.junit, mais votre POM utilise par défaut Junit3 (package junit.framework), comme en témoigne cette image:

see JUNIT conflict

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

15
Grubhart

Dans mon cas, le coupable n’a pas distingué le dossier principal et le répertoire de sources de test dans pom.xml (généré par le projet maven d’Eclipse).

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

Si vous remplacez les paramètres de dossier source par défaut dans le fichier pom, vous devez définir explicitement les dossiers source AND principaux de test !!!!

<build>
    <sourceDirectory>src/main/Java</sourceDirectory>
    <testSourceDirectory>src/test/Java</testSourceDirectory>
    ....
</build>
0
nix