Multi-module Maven build on Bamboo with Clover history reports

Still need help?

The Atlassian Community is here for you.

Ask the community

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.