After changing setting cloverDatabase, clover2:aggregate fails

Fernando Fraticelli December 5, 2011

I'm using the maven clover2 pluging, version 3.0.5, and I'm having issues invoking clover2:aggregate. If I do chagne the name/locatio of the clover database, I'm successfull in executing clover2:aggregate. The minute I change it to something other than the default, I get "No Clover databases found in children projects - No merge done"

Is there a bug in the aggregate goal if you change the location or name of the database file?

Thanks

3 answers

0 votes
Tomek Bujok September 13, 2012

Adding site to the end of the command did the trick:

mvn clean clover2:setup verify clover2:aggregate clover2:clover site

Thanks,
Tom

0 votes
Tomek Bujok September 13, 2012

Hi,

Thanks for your answer. How do I include the aggregated report in the site then?

Tom

0 votes
Marek Parfianowicz
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 27, 2012

"No Clover databases found in children projects - No merge done"

This message typically occurs when you have clover2:aggregate goal defined in pom.xml. For example a following definition is incorrect for multi-module projects:

<plugin>
  <groupId>com.atlassian.maven.plugins</groupId>
  <artifactId>maven-clover2-plugin</artifactId>
  <executions>
    <execution>
      <phase>verify</phase>
      <goals>
         <goal>instrument</goal>
         <goal>aggregate</goal>
         <goal>clover</goal>
      </goals>
    </execution>
  </executions>
</plugin>

mvn verify

Instead of this you should call aggregate goal in mvn commandline, for example this is correct:

mvn clean clover2:setup verify clover2:aggregate clover2:clover

Background reason:

Maven starts building projects from top-level module, going through all phases, next it starts to build sub-modules (again going through all phases) one after another. As a result, when you have clover2:aggregate bound in top-level pom.xml to some build phase (like 'verify' in my example), Maven will come to aggregate goal in top-level module and fail, because sub-modules were not built yet and there are no databases availalble.

In case when you declare phases/goals in command line, Maven will execute first declared phase (for example, building all modules), next execute second phase etc... So in my correct example it will: clean all modules, setup Clover, build and test all modules, aggregate results, generate report.

Regards
Marek

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events