Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Cobertura mit Grails - java.lang.NoClassDefFoundError: org/apache/log4j/Category

Zur Ermittlung der Testabdeckung instal­lierte ich mir kürz­lich das Test Code Coverage Plugin für Grails (1.0.4). Leider bekam ich beim Aufruf von "grails test-app-cobertura " fol­gen­den Fehler angezeigt:

[cobertura-instrument] java.lang.NoClassDefFoundError: org/apache/log4j/Category
[cobertura-instrument] Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Category
[cobertura-instrument]  at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
[cobertura-instrument]  at java.security.AccessController.doPrivileged(Native Method)
[cobertura-instrument]  at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[cobertura-instrument]  at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[cobertura-instrument]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[cobertura-instrument]  at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[cobertura-instrument] Could not find the main class: net.sourceforge.cobertura.instrument.Main.  Program will exit.
[cobertura-instrument] Exception in thread "main"
Compilation Error: Error instrumenting classes. See messages above.

Die Suche nach einer Lösung im Netz brachte einige Lösungsvorschläge wie z.B. Classpath kon­fi­gu­rie­ren, Cobertura/Grails-Version zu aktua­li­sie­ren, etc.

Einen sol­chen Aufwand wollte ich nicht unbe­dingt betrei­ben und pro­bierte zunächst mal dem Plugin zu geben wonach es ver­langte – die Logger-Klasse. Ich kopierte also das log4j‑1.2.15.jar aus dem %GRAILS_HOME%\lib ein­fach in das Lib-Verzeichnis des Plugins ( plugins\code-coverage‑0.9\lib\cobertura\). Und siehe da – es funktionierte!

Related Posts

Pin It on Pinterest