Hi all,
I am having a tough time with maven site generation with Cobertura plugin(
Both 2.0 and 2.1). My Environment is Linux with Java 1.5.0_09 installed.
Introduction of Cobertura plugin to site generation caused the following
error.
ERROR] FATAL ERROR
[INFO]
------------------------------------------------------------------------
[INFO] net/sourceforge/cobertura/coveragedata/HasBeenInstrumented
[INFO]
------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError:
net/sourceforge/cobertura/coveragedata/HasBeenIn
strumented
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(
SecureClassLoader.java:12
4)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java
:95)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile
(Annotatio
nConfiguration.java:325)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java
:1034
)
at
org.codehaus.mojo.hibernate3.HibernateExporterMojo.getConfiguration(H
ibernateExporterMojo.java:110)
at
org.codehaus.mojo.hibernate3.exporter.SchemaExportMojo.doSchemaExport
(SchemaExportMojo.java:63)
at org.codehaus.mojo.hibernate3.exporter.SchemaExportMojo.doExecute
(Sche
maExportMojo.java:51)
at org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute
(HibernateE
xporterMojo.java:60)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo
(DefaultPlugi
nManager.java:420)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals
(Defa
ultLifecycleExecutor.java:539)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi
fecycle(DefaultLifecycleExecutor.java:480)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecy
cle(DefaultLifecycleExecutor.java:896)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle
(Def
aultLifecycleExecutor.java:739)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals
(Defa
ultLifecycleExecutor.java:530)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandalone
Goal(DefaultLifecycleExecutor.java:493)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal
(Defau
ltLifecycleExecutor.java:463)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:311)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:278)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute
(DefaultLi
fecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:330)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:123)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java
:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java
:430)
However with some effect I figured out this is due to asm class path
conflict between Cobertura and Spring/Hibernate and able to ged rid of this
by introducing following to the root .pom file.
<dependency>
<groupId>cobertura</groupId>
<artifactId>cobertura-runtime</artifactId>
<version>1.8</version>
<type>pom</type>
</dependency>
Though, I was able to solve that problem, other problem prompted on the way.
It seems this is due to Cobertura plugin have problems with JRE 1.5.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
-----------------------------------------------------
this realm = app0.child-container[org.codehaus.mojo:cobertura-maven-plugin]
urls[0] =
file:/work/.m2/repository/org/codehaus/mojo/cobertura-maven-plugin/2.1-SNAPSHOT/cobertura-
maven-plugin-2.1-SNAPSHOT.jar
urls[1] =
file:/work/.m2/repository/commons-validator/commons-validator/1.1.4/commons-
validator-1.1.4.jar
urls[2] =
file:/work/.m2/repository/cobertura/cobertura-runtime/1.8/cobertura-
runtime-1.8.pom
urls[3] = file:/work/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar
urls[4] = file:/work/.m2/repository/urbanophile/java-getopt/1.0.9/java-
getopt-1.0.9.jar
urls[5] = file:/work/.m2/repository/doxia/doxia-core/1.0-alpha-4/doxia-
core-1.0-alpha-4.jar
urls[6] = file:/work/.m2/repository/asm/asm/2.2.1/asm-2.2.1.jar
urls[7] =
file:/work/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-
utils-1.1.jar
urls[8] = file:/work/.m2/repository/log4j/log4j/1.2.9/log4j-1.2.9.jar
urls[9] = file:/work/.m2/repository/cobertura/cobertura/1.8/cobertura-
1.8.jar
urls[10] =
file:/work/.m2/repository/org/apache/maven/reporting/maven-reporting-impl/2.0/maven-
reporting-impl-2.0.jar
Number of imports: 4
import: [EMAIL PROTECTED]
import: [EMAIL PROTECTED]
import: [EMAIL PROTECTED]
import: [EMAIL PROTECTED]
this realm = plexus.core
urls[0] = file:/usr/local/maven/maven-2.0.6/lib/maven-core-2.0.6-uber.jar
Number of imports: 4
import: [EMAIL PROTECTED]
import: [EMAIL PROTECTED]
import: [EMAIL PROTECTED]
import: [EMAIL PROTECTED]
-----------------------------------------------------
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Error getting reports from the plugin '
org.codehaus.mojo:cobertura-maven-plugin': Unable to find the mojo '
org.codehaus.mojo:cobertura-maven-plugin:2.1-SNAPSHOT:dump-datafile' in the
plugin 'org.codehaus.mojo:cobertura-maven-plugin'
Bad version number in .class file
[INFO]
------------------------------------------------------------------------
After that I thought to change to Cobertura plugin version 2.0 and got the
following with Cobertura plugin 2.0.
INFO] Preparing findbugs:findbugs
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [site:site]
[WARNING] Error loading report org.apache.maven.plugin.jxr.JxrReport -
AbstractMethodError: canGenerateReport()
[INFO] Generate "Checkstyle" report.
[INFO] Generate "CPD Report" report.
[INFO] Generate "PMD Report" report.
[INFO] Generate "Continuous Integration" report.
[INFO] Generate "Dependencies" report.
[INFO] Generate "Dependency Convergence" report.
[INFO] Generate "Issue Tracking" report.
[INFO] Generate "Project License" report.
[INFO] Generate "Mailing Lists" report.
[INFO] Generate "About" report.
[INFO] Generate "Project Summary" report.
[INFO] Generate "Source Repository" report.
[INFO] Generate "Project Team" report.
[INFO] Generate "Cobertura Test Coverage" report.
[INFO] Cobertura 1.7 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
[ERROR] Error: data file
/work/workspace/BP_V2.0_offshore_int_sl1/balancepoint/common/cobertura.ser
does not exist
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Error during page generation
Embedded error: Error rendering Maven report: Error in Cobertura Report
generation: Unable to generate Cobertura Report for project.
[INFO]
------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 1 minute 16 seconds
[INFO] Finished at: Thu Jun 07 18:30:22 LKT 2007
[INFO] Final Memory: 27M/52M
[INFO] --------------------------------------------------
However going through the Cobertura JIRA I found out a patch for this and
applied it.
INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [cobertura:instrument]
[INFO]
------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO]
------------------------------------------------------------------------
[INFO] net/sourceforge/cobertura/util/CommandLineBuilder
[INFO]
------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError:
net/sourceforge/cobertura/util/CommandLineBuilder
at org.codehaus.mojo.cobertura.tasks.CommandLineArguments.getCommandsFile(
CommandLineArguments.java:70)
at org.codehaus.mojo.cobertura.tasks.AbstractTask.executeJava(
AbstractTask.java:178)
at org.codehaus.mojo.cobertura.tasks.InstrumentTask.execute(
InstrumentTask.java:124)
at org.codehaus.mojo.cobertura.CoberturaInstrumentMojo.execute(
CoberturaInstrumentMojo.java:120)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
DefaultPluginManager.java:443)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:539)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle
(DefaultLifecycleExecutor.java:480)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(
DefaultLifecycleExecutor.java:896)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(
DefaultLifecycleExecutor.java:739)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:510)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal
(DefaultLifecycleExecutor.java:493)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
DefaultLifecycleExecutor.java:463)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures
(DefaultLifecycleExecutor.java:311)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
DefaultLifecycleExecutor.java:278)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java
:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO]
------------------------------------------------------------------------
Finally I check out the Cobertura source from svn and build the cobertura
jar on my own with some modifications (Can't remember what those are) and
installed it to the maven repository and end up getting the following.
[INFO]
------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO]
------------------------------------------------------------------------
[INFO] net/sourceforge/cobertura/ant/Regex
[INFO]
------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError: net/sourceforge/cobertura/ant/Regex
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
at java.lang.Class.privateGetPublicMethods(Class.java:2519)
at java.lang.Class.getMethods(Class.java:1406)
at hidden.org.codehaus.plexus.util.ReflectionUtils.getSetter(
ReflectionUtils.java:74)
at
org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.initSetter
(ComponentValueSetter.java:81)
at
org.codehaus.plexus.component.configurator.converters.ComponentValueSetter
.<init>(ComponentValueSetter.java:62)
at
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration
(ObjectWithFieldsConverter.java:134)
at
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration
(ObjectWithFieldsConverter.java:90)
at
org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.configure
(ComponentValueSetter.java:247)
at
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration
(ObjectWithFieldsConverter.java:137)
at
org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent
(BasicComponentConfigurator.java:56)
at org.apache.maven.plugin.DefaultPluginManager.populatePluginFields
(DefaultPluginManager.java:1147)
at org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(
DefaultPluginManager.java:614)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
DefaultPluginManager.java:421)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:539)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle
(DefaultLifecycleExecutor.java:480)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(
DefaultLifecycleExecutor.java:896)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle
(DefaultLifecycleExecutor.java:739)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:530)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(
DefaultLifecycleExecutor.java:493)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
DefaultLifecycleExecutor.java:463)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures
(DefaultLifecycleExecutor.java:311)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
DefaultLifecycleExecutor.java:278)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java
:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java
:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO]
------------------------------------------------------------------------
any help is highly appreciated.
Best regards,
dmag