Multi-module Maven build on Bamboo with Clover history reports

This problem has been solved in the bug fix CLOV-1290 in Clover version 3.1.12 and the bug fix BAM-13222 in Bamboo version 5.0. We recommend upgrading to the latest Clover and Bamboo versions.

Symptoms

Multi-module Maven build on Bamboo with automatic Clover integration. Generation of history reports enabled.

Build failing on a sub-module with an error like below:

/tmp/MY-JOB1/mvn6923231521105500978resource:21: java.lang.IllegalStateException: 
basedir /home/bamboo/xml-data/build-dir/MY-JOB1/my-module/.cloverhistory is not a directory

 

Cause

When automatic Clover integration with historical reports is enabled in Bamboo, the Bamboo adds a following parameter to a Maven build task:

-Dmaven.clover.historyDir=.cloverhistory

As a consequence, in case of sub-modules, it cannot find a directory containing historical data, because it's located in the top-level module.

 

Resolution

The best way to use Clover with Bamboo and Maven to create historical charts is:

  • use a single clover database for all modules, rather than 1 per module
    • this removes the need to call clover:aggregate
    • use -Dmaven.clover.singleCloverDatabase=true
  • specify a single historydir location: -Dmaven.clover.historyDir=/some/dir/notdeleted-across-clean-builds
    • this location must be preserved between bamboo builds
    • if you have multiple bamboo agents, be sure to capture the contents of this dir somehow and make it available for the next build.
    • use manual Clover integration, otherwise mvn command will have two -Dmaven.clover.historyDir options provided (one defined manually, one added by Bamboo) - bug BAM-13222

 

Last modified on Dec 8, 2015

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.