Ich versuche das Javadoc mit Maven zu erstellen und es schlägt fehl. Dies schlägt auch bei der Überprüfung fehl.
mvn verify
Ich erhalte folgende Fehlermeldung:
(...)
[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:
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$
Der Code ist in Ordnung, weil ich in meinem Laptop, auf den ich jetzt keinen Zugriff habe, Folgendes ausführen kann:
mvn javadoc:javadoc
mvn verify
ohne Probleme, und auch die Tests funktionieren in Eclipse IDE.
Antworten:
Ok, Sie haben die
junit
Abhängigkeit nur fürtest
Klassen deklariert (diejenigen, die sich in befinden,src/test/java
aber Sie versuchen, sie inmain
Klassen zu verwenden (diejenigen, die sich befindensrc/main/java
).Verwenden Sie es entweder nicht in Hauptklassen oder entfernen Sie es
<scope>test</scope>
.quelle
Ich habe diesen Fehler durch Einfügen der folgenden Codezeilen behoben:
<dependency> <groupId>junit</groupId> <!-- NOT org.junit here --> <artifactId>junit-dep</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency>
in den Knoten <dependencies>.
Weitere Details finden Sie unter: http://mvnrepository.com/artifact/junit/junit-dep/4.8.2
quelle
<scope>test</scope>
Tags in diesem Abhängigkeitsabschnitt weggelassen haben. Dies bedeutet, dass die Tests in Ihren Produktionscode kompiliert werden.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 TestCase mit dem Paket org.junit, aber Ihr POM verwendet standardmäßig Junit3 (junit.framework-Paket). Dies ist die Ursache, wie in diesem Bild dargestellt:
Aktualisieren Sie einfach Ihre Junit-Abhängigkeit in Ihrer POM-Datei auf Junit4 oder Ihren Eclipse BuildPath auf Junit3
quelle
In meinem Fall hat der Täter den Haupt- und den Testquellenordner in pom.xml (generiert durch das Eclipse Maven-Projekt) nicht unterschieden.
<build> <sourceDirectory>src</sourceDirectory> .... </build>
Wenn Sie die Standardeinstellungen für Quellordner 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>
quelle