Maven Build-Fehler, NoClassDefFoundError Exception

turksson

Mitglied
Hallo,

ich versuche meine Testklassen mit Maven zu starten. Dafür verwende ich einen Nexus-Server. Beim Starten bekomme ich die folgende Fehlermeldung.

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestSuite
org.apache.maven.surefire.booter.SurefireExecutionException: com/google/inject/Module;
nested exception is java.lang.NoClassDefFoundError: com/google/inject/Module
java.lang.NoClassDefFoundError: com/google/inject/Module
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:1
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
.....
Caused by: java.lang.ClassNotFoundException: com.google.inject.Module
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
....
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 26 more
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.​

Ich hatte davor das guice-struts2-plugin heruntergeladen und auf dem Server deployt. Und im "inject"-Ordner habe ich keinen Ordner mit dem Namen "Module". Hat jemand eine Idee, wie man das Problem lösen könnte? Danke im Voraus.
 
ich hab das Problem gelöst. Die "guice 2.0 jar"-Datei hab ich komplett (aus dem Nexus-Server) gelöscht und nochmal hochgeladen und das hat funktioniert.
 
Nicht schön, sollte man nur im Notfall machen, Artifakte manuell hochzuladen wenn diese Artifakte im Central Repo sind: Index of /maven2/com/google/inject/guice/2.0/

Danke für die Anmerkung. Aber ich hatte am Anfang versucht, das Artifakt aus dem Central Repository zu holen. In die Pom.Datei hatte ich diese Zeilen hinzugefügt. (ist das richtig so?)
[XML]<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice-parent</artifactId>
<version>2.0</version>
</dependency>
[/XML]

Aber dann kam die Fehlermeldung, dass das Artifakt nicht gefunden werden konnte. Erst dann habe ich das Artifakt manuell hochgeladen.

Ist das Artifakt aus dem Central Repo kaputt?

Das weiß ich nicht. Wie gesagt in der Fehlermeldung stand, dass das Artifakt nicht gefunden werden konnte.
 
Ich behaupte mal dass deine Dependency falsch ist, du willst doch sicherlich nicht den Parent 😉

So klappts mit der guice.jar:
[xml] <dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>2.0</version>
</dependency>
[/xml]
Du hast die jar als Parent hochgeladen und nun geht deine fehlerhafte depdency, weil du das Artifact mit falschen Koordinaten (guice-parent anstatt guice als artifactId) in dein Repo hochgeladen hast, also zwei Fehler die sich zwar gegenseitig aufheben aber deswegen nicht richtig und vor allem aufwändig 😉
 
Du hast die jar als Parent hochgeladen und nun geht deine fehlerhafte depdency, weil du das Artifact mit falschen Koordinaten (guice-parent anstatt guice als artifactId) in dein Repo hochgeladen hast, also zwei Fehler die sich zwar gegenseitig aufheben aber deswegen nicht richtig und vor allem aufwändig
Ich wusste, dass da was schief gelaufen ist :bae: danke nochmal 😉
 

Neue Themen


Zurück
Oben