Ich versuche, das Javadoc mit Maven zu erstellen, und es schlägt fehl. Es 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 folgende 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, denn in meinem Laptop, auf den ich jetzt keinen Zugriff habe, kann ich Folgendes ausführen:
mvn javadoc:javadoc
mvn verify
ohne Probleme, und auch die Tests funktionieren in Eclipse IDE.
Ok, Sie haben die junit
-Abhängigkeit nur für test
-Klassen erklärt (diejenigen, die sich in src/test/Java
befinden, aber Sie versuchen, sie in main
-Klassen zu verwenden (die in src/main/Java
sind).
Entweder nicht in Hauptklassen verwenden oder <scope>test</scope>
entfernen.
Ich habe diesen Fehler behoben, indem ich folgende Codezeilen eingefügt habe:
<dependency>
<groupId>junit</groupId> <!-- NOT org.junit here -->
<artifactId>junit-dep</artifactId>
<version>4.8.2</version>
</dependency>
in den <Abhängigkeiten> Knoten.
weitere Informationen finden Sie unter: http://mvnrepository.com/artifact/junit/junit-dep/4.8.2
wenn Sie Eclipse verwenden, beachten 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. Ihr POM verwendet jedoch standardmäßig Junit3 (Paket junit.framework).
Aktualisieren Sie einfach Ihre Junit-Abhängigkeit in Ihrer POM-Datei auf Junit4 oder Ihren Eclipse BuildPath auf Junit3
In meinem Fall hat der Täter den Haupt- und Testquellenordner in pom.xml nicht unterschieden (generiert von Eclipse Maven Project).
<build>
<sourceDirectory>src</sourceDirectory>
....
</build>
Wenn Sie die Standard-Quellordner-Einstellungen in der POM-Datei überschreiben, müssen Sie die Haupt- und Test-Quellordner explizit festlegen.
<build>
<sourceDirectory>src/main/Java</sourceDirectory>
<testSourceDirectory>src/test/Java</testSourceDirectory>
....
</build>