Quality is an everyday part of the life of a Xebia software developer. One of the ways to get insight into quality is by looking at metrics like FindBugs, PMD, Simian, Code Coverage, etc. With large software products consisting of different modules, quality assurance can become quite a trying task. This means that tools which alleviate this burden are a welcome addition to our toolbox.

The Maven 1.x dashboard is such a tool. The Maven site is integrated into our continuous integration process, and the dashboard that is generated provides a birds-eye view of a lot of our quality metrics. This is especially useful when dealing with multi-module projects. For the Maven2 build system a similar plugin is currently available on Codehaus. However this plugin is not final yet and in the past we had some trouble to get it to work. Therefore we decided to try and build our own plugin.

As our toolbox heavily leans on a lot of open source products, we decided to give something back to the community and release this plugin as an open source product. The dashboard plugin can be found at the following URL: http://mojo.os.xebia.com/maven-dashboard-plugin. On the site you can find many configuration examples.

In order to use the plugin in your pom, you'll have to do some basic configuration. The following example shows what you need to add to your pom.xml


  ...
  
    
      xebia-maven2
      Xebia Maven2 Repository
      http://mojo.os.xebia.com/repository
      
  
  ....
  
    
      ...
      
        com.xebia.mojo
        maven-dashboard-plugin
      
    
  

This configuration will generate a full dashboard when you run the build using the following command line:

mvn site dashboard:dashboard site:deploy

The result of the execution of this command for the maven dashboard plugin itself looks like this
Sample of Maven Dashboard Plugin

The source code for the plugin is released in Subversion, and the Jira issuetracker can be found here.

Now that we've got a Dashboard for Maven2 projects, we can finally get the quality overview and focus on fixing quality assurance issues instead of finding them throughout the different modules of our projects.