It is recommended to run project analyses on a regular basis to get the best from the SonarQube platform. Continuous Integration servers are the perfect tools to do so.

Jenkins

Install and configure theĀ SonarQube Jenkins plugin.

Hudson

Install and configure theĀ SonarQube Hudson plugin.

Atlassian Bamboo

Install the SonarQube plugin for Bamboo, by Marvelution.

Apache Continuum 1.2

The difficulty in Continuum is to be able to synchronize an install goal with the sonar:sonar goal because it is necessary that an install goal is run before the SonarQube collect starts (See Analyzing Source Code for more information).

Since Continuum does not provide mechanism to trigger a build from a build, there are two options: either running install goals regularly (for example every hour), or trigger a complete command such as:

mvn clean install sonar:sonar -Dmaven.test.failure.ignore=true

In this case, unit tests are going to be run twice: once during install and once during sonar:sonar

In case you decide to run install commands regularly, here is the setup you can do for the SonarQube build:

sonar:sonar

For multi-module projects, make sure that the --non-recursive build definition argument is NOT set.

CruiseControl


In CruiseControl, use the | to run the install and the sonar:sonar goals in two different processes. The command to be run should look like:

clean install -Dtest=false -DfailIfNoTests=false | sonar:sonar -Psonar_profile

Jetbrains TeamCity

These are the build configuration steps you need to do for the build:

  1. In general settings, make sure that fail build if at least one test failed is unchecked.
  2. In build runner config, select Maven2, with the goal

    clean install sonar:sonar
    

    Additional Maven command line parameters:

    -Dmaven.test.failure.ignore=true
    
  3. In build triggering select a daily schedule (or what you prefer).
  4. In Properties and environment variables, add an environment variable called MAVEN_OPTS, and set the value to -Xmx512m