Marco Schulze created JENKINS-12808:
---------------------------------------
Summary: cobertura-maven-plugin: cannot be deactivated + fails
with NullPointerException + version 2.5.1 cannot be overwritten
Key: JENKINS-12808
URL: https://issues.jenkins-ci.org/browse/JENKINS-12808
Project: Jenkins
Issue Type: Bug
Components: cobertura
Affects Versions: current
Environment: Tested with Jenkins 1.451
Reporter: Marco Schulze
Assignee: stephenconnolly
Priority: Blocker
There are three problems related to the cobertura-maven-plugin:
1) Even though my project does NOT have the cobertura-maven-plugin in its
build/plugins-section, this maven-plugin is magically added by Jenkins to the
build process. I did NOT enable any cobertura-related setting in the job,
either.
2) The cobertura-maven-plugin causes the build to fail with a
NullPointerException:
Caused by: java.lang.NullPointerException
at java.util.ArrayList.addAll(ArrayList.java:472)
at
org.codehaus.mojo.cobertura.CoberturaReportMojo.getAllChildren(CoberturaReportMojo.java:574)
at
org.codehaus.mojo.cobertura.CoberturaReportMojo.executeAggregateReport(CoberturaReportMojo.java:275)
at
org.codehaus.mojo.cobertura.CoberturaReportMojo.executeAggregateReport(CoberturaReportMojo.java:265)
at
org.codehaus.mojo.cobertura.CoberturaReportMojo.executeReport(CoberturaReportMojo.java:251)
at
org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:93)
...
3) It seems to be impossible to override the version of the
cobertura-maven-plugin: No matter what version I declare in my parent-POM's
pluginManagement, Jenkins always uses version 2.5.1
For you to reproduce, I created a new project from scratch (I only copied some
files from other projects and stripped most of their contents). Here are all
the links:
Project's SVN URL:
https://dev.nightlabs.org/svn/public/main/experimentals/test20120216/
First build:
https://dev.nightlabs.org/jenkins/job/org.nightlabs.test20120216/1/console
This build has been done with cobertura-maven-plugin's version being set to 2.4
in my plugin-MANAGEMENT. Still the build on Jenkins uses version 2.5.1. Note,
that the cobertura-maven-plugin is NOT listed in the plugins-section (but only
in the pluginManagement). Therefore, it should not be included in the build
process at all. When I run the build locally with "mvn clean install", it does
not occur, too. Here's the log:
https://dev.nightlabs.org/svn/public/main/experimentals/test20120216/org.nightlabs.test20120216.all/mvn_clean_install.ganesha.log
Second build:
https://dev.nightlabs.org/jenkins/job/org.nightlabs.test20120216/2/console
This build has been done with the cobertura-maven-plugin being commented out
from the pluginManagement. Now, the "Effective POM" in m2e shows me NO
Cobertura AT ALL anymore and still the result is the same.
3rd and 4th build:
I added configuration/skip=true in the parent-POM with the result that the
build now works fine. But it does so only, because there is no unit test, yet
(there is an *integration* test, but no *unit* test).
5th build:
https://dev.nightlabs.org/jenkins/job/org.nightlabs.test20120216/5/console
I added a unit test which produces this error in the log output (when being run
the 2nd time):
*********
Tests in error:
doSomething(org.nightlabs.test20120216.client.test.SomeTest):
org/nightlabs/test20120216/client/TestClient
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[ERROR] There are test failures.
*********
Despite this error, the build succeeds. However, this is not always the case:
In another project, this is handled as a fatal error and breaks the build. I
was not able to find out where's the difference. However, this 2nd test run
should not happen at all in the first place.
The problem is obviously that the cobertura-maven-plugin is correctly skipped
(and thus does not instrument any class), but the unit-tests are still executed
twice. And the second time, it tries to access instrumented classes, which do
not exist.
Here's what I did in Jenkins (version 1.451) to create the job (I did NOT
enable any cobertura-related things!):
=> New Job
==> Job name = org.nightlabs.test20120216
==> Build a maven2/3 project
==> OK
==> Enable project-based security
===> Read access for Anonymous
==> Source Code Management
===> Subversion CHECKED
===> Repository URL =
https://dev.nightlabs.org/svn/public/main/experimentals/test20120216/
===> Check-out Strategy = Emulate clean checkout by first deleting
unversioned/ignored files, then 'svn update'
==> Build
===> Root POM = org.nightlabs.test20120216.all/pom.xml
==> Save
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira