Maven-Fehler: Paket org.junit existiert nicht

Lesezeit: 5 Minuten

Benutzer-Avatar
Thema

Ich versuche, das Javadoc mit Maven zu erstellen, und es schlägt fehl. Es schlägt auch fehl, wenn die Überprüfung durchgeführt wird.

mvn verify

Ich bekomme folgenden Fehler:

(...)
    [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
    (···)

In meiner pom.xml-Datei habe ich die folgenden Zeilen:

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

und mein lokales Repository enthält die junit-jar-Datei:

[email protected]:~/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
[email protected]:~/creaveu/createOmegaMatrix$

Der Code ist in Ordnung, weil ich auf meinem Laptop, auf den ich jetzt keinen Zugriff habe, Folgendes ausführe:

mvn javadoc:javadoc
mvn verify

ohne Probleme, und auch die Tests funktionieren in der Eclipse-IDE.

  • Gleiche Symptome, andere Ursache: stackoverflow.com/q/5845990/923560

    – Abdul

    29. Dezember 2013 um 0:16 Uhr

Ok, du hast deklariert junit Abhängigkeit für test nur Klassen (diejenigen, die in src/test/java aber Sie versuchen, es in zu verwenden main Klassen (diejenigen, die in src/main/java).

Verwenden Sie es entweder nicht in Hauptklassen oder entfernen Sie es <scope>test</scope>.

  • verdammt!!! Richtig, das hat das Problem mit der Überprüfung des Ziels gelöst. Jetzt habe ich andere Probleme mit javadoc, aber bezüglich Latex. Das Problem ist also gelöst!!! Danke @Andrew

    – Thema

    13. September 2012 um 9:50 Uhr


  • Wenn ich den Bereichstest aus meiner POM-Datei entferne, werden meine Testfälle nie ausgeführt, obwohl ich keinen Fehler erhalte, den ich zuvor erhalten habe (wie oben erwähnt). Meine Tests befinden sich auch unter src/test/java und ich habe einige Bibliotheken, die sich in src/main/java befinden.

    – Pfarr

    29. Januar 2016 um 17:00 Uhr

  • Sie können einen übergeordneten Pom mit test und einen untergeordneten Pom mit compile festlegen, wenn ein untergeordnetes Modul junit verwendet, wenn es sich nicht in der Testhierarchie befindet.

    – Daniel

    27. Juli 2016 um 2:49 Uhr

  • Ich frage mich, warum ich das bekomme, wenn ich den Testumfang für die JUnit-Abhängigkeit verwende: …/src/test/java/com/…RuleTest.java:[3,24] Paket org.junit existiert nicht

    – Panu Haaramo

    22. Oktober 2017 um 12:29 Uhr


  • Vielen Dank! Ich habe mich stundenlang mit diesem Problem herumgeschlagen.

    – LearnerAllTheWay

    6. Januar um 11:03 Uhr

Benutzer-Avatar
Siwei

Ich habe diesen Fehler behoben, indem ich diese Codezeilen eingefügt habe:

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

in den -Knoten.

Weitere Details finden Sie unter: http://mvnrepository.com/artifact/junit/junit-dep/4.8.2

  • Dies ist eine schlechte Lösung, da Sie das weggelassen haben <scope>test</scope> -Tags in diesem Abhängigkeitsabschnitt. Das bedeutet, dass die Tests in Ihren Produktionscode kompiliert werden.

    – LightCC

    24. Dezember 2018 um 0:15 Uhr

Benutzer-Avatar
Grubhart

Wenn Sie Eclipse verwenden, beobachten Sie Ihre POM-Abhängigkeiten und Ihre Eclipse-Buildpath-Abhängigkeit von junit

Wenn Sie Junit4 Eclipse verwenden auswählen, erstellen Sie einen Testfall mit dem org.junit-Paket, aber Ihr POM verwendet standardmäßig Junit3 (junit.framework-Paket), das ist die Ursache, wie in diesem Bild:

siehe JUNIT-Konflikt

Aktualisieren Sie einfach Ihre Junit-Abhängigkeit in Ihrer POM-Datei auf Junit4 oder Ihren Eclipse-BuildPath auf Junit3

  • Nun, ich habe das vor zwei Jahren gefragt, und jetzt arbeite ich nicht mehr daran, zumindest jetzt. Aber danke für die Antwort. Weiß nicht, ob ich es irgendwie auf geschlossen setzen muss.

    – Thema

    23. Juli 2014 um 16:07 Uhr


  • @dwjohnston großartig!! Ich arbeite nicht mit maven, aber ich freue mich zu sehen, dass meine Frage anderen hilft;) auch danke Grubhart für die Antwort. 🙂

    – Thema

    3. August 2015 um 8:46 Uhr

In meinem Fall war der Übeltäter nicht zwischen dem Haupt- und dem Testquellenordner in pom.xml (erzeugt durch das Eclipse-Maven-Projekt) zu unterscheiden.

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

Wenn Sie die Standard-Quellordnereinstellungen in der POM-Datei überschreiben, müssen Sie die Haupt- UND Testquellordner explizit festlegen!!!!

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

Ich habe dies gelöst, indem ich eine Kombination aus einigen der oben genannten Tipps und anderen Ideen verwendet habe, die an anderer Stelle auf Stackoverflow zu finden sind.

Holen Sie sich die aktuell neueste Version von Junit über Maven, indem Sie diese zu my hinzufügen pom.xml

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.9.0-M1</version>
    <scope>test</scope>
</dependency>   

Geben Sie unterschiedliche Quellverzeichnisse für Hauptcode und Testcode an pom.xml

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

Die wichtigste Änderung war jedoch, dass ich versucht hatte, einige Testmethoden in meiner zu erstellen hauptsächlich Quellcode, der diese Importanweisungen hatte.

import org.junit.jupiter.api.Test; 

Sobald ich alle Testfunktionen aus den Hauptquelldateien entferntes hat alles wieder richtig funktioniert.

Dies führt zu einem übersichtlicheren Code, da alle Tests nun klar vom Haupt-Build getrennt sind.

1246160cookie-checkMaven-Fehler: Paket org.junit existiert nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy