Apache Maven 1.x has reached its end of life, and is no longer supported. For more information, see the announcement. Users are encouraged to migrate to the current version of Apache Maven.

Maven Dashboard plugin

Generate a dashboard HTML report containing information gathered from other Maven reports (Checkstyle, Clover, JUnit, Simian, etc). The dashboard aggregate this information for all subprojects, presenting them in a single tabular format.

Please note that the dashboard plugin is not supposed to work on a single project. You need to have a master project and subprojects to make it work.

Current features:

  • Pluggable architecture. It allows to add custom aggregators for any kind of report, be them Maven reports or anything else (like calling an SCM system, calling JIRA, etc). An aggregator is actually a Jelly script so that you have the full power of Jelly at your hand.
  • Provides default aggregators.
  • Allows tight integration in one's own custom reactor and prevents running reports several times.

Example:

dashboard.jpg

Note that there are some external plugins available that incorporate some functionality for dashboard history graphs:

Quick start

There are several possible ways of using the dashboard plugin.

Solution 1: Registering it as a Maven report

In your master project, add a maven-dashboard-report report entry:

  <reports>
    [...]
    <report>maven-dashboard-plugin</report>
  </reports>

Then, when you generate the web site (maven site), Maven will generate the dashboard report which will be available in the web site left menu, under "Project Reports".

Solution 2: Running it manually

In your master project, simply type maven dashboard. This will generate a dashboard xdoc file. Then type maven xdoc to transform it into an HTML file.

Solution 3: Using the multiproject plugin

In your master project, add a maven-dashboard-report report entry:

  <reports>
    [...]
    <report>maven-dashboard-plugin</report>
  </reports>

Add the following properties to the project you run multiproject from:

# Tells the dashboard plugin not to run its own reactor. 
# We'll use the one run by the multiproject.
maven.dashboard.runreactor = false

# Tells the multiproject plugin to execute the dashboard:report-single
# goal on each project when you run it through multiproject:site.
maven.multiproject.site.goals=site,dashboard:report-single

And add to every subproject (not that you can also factorize it by defining the property in the master project as Maven 1.0 and greater supports inheritance of properties):

# (optional). Tells the dashboard not to specifically run 
# artifact goals (i.e. goals that generate artifacts that we aggregate
# in the dashboard report). For example, if you already have defined
# the reports generating these artifacts, you'd be better setting
# rungoals to false so that the artifact goals are only run once.
maven.dashboard.rungoals = false

Then generate the site by running the multiproject:site goal.