Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 100 Next »

Table of Contents

This page describes how to integrate SonarQube into a build script for Apache Ant.

Prerequisites

You must have previously installed the SonarQube Ant Task and read Analyzing Source Code.

Usage

The Ant task is a thin wrapper around the SonarQube Runner, which works by invoking the runner and passing to it all properties named following a sonar.* convention. This has the downside of not being very Ant-y, but the upside of providing instant availability of any new analysis parameter introduced by a new version of a plugin or of SonarQube itself. Therefore, successful use of the SonarQube Ant task requires strict adherence to the property names shown below.

You may also consult the list of analysis parameters for additional properties which will be honored in an Ant-based analysis.

Simple Project

Define a new sonar Ant target in your Ant build script:

build.xml

Run the following command from the project base directory to launch the analysis:

Security

SonarQube 3.7+

Any user who's granted Execute Analysis permission can run an analysis.

If the Anyone group is not granted Execute Analysis permission or if the SonarQube instance is secured (the sonar.forceAuthentication property is set to true), the credentials of a user having been granted Execute Analysis permission have to be provided through the sonar.login and sonar.password properties. Example: sonar-runner -Dsonar.login=myLogin -Dsonar.password=myPassword

SonarQube 3.4 to 3.6.3

If a project cannot be accessed anonymously, the sonar.login and sonar.password properties are required to run an analysis on this project. These properties have to be set to the credentials of a user having the User role on this project. You can set them either:

  • directly on the command line by adding -Dsonar.login=myLogin -Dsonar.password=myPassword
  • or in the build.xml file

A project cannot be anonymously accessed when either:

Prior to SonarQube 3.4

There is no security restriction.

Sample Projects

To help you getting started, a simple project sample is available on github that can be browsed or downloadedprojects/languages/java/ant/java-ant-simple

Multi-module Project

The configuration for parent and modules must be done in the parent build.xml file:

Parent build.xml

To help you getting started, project samples are available on github that can be browsed or downloaded:

  • Modules with the same structure: projects/multi-module/ant/java-ant-modules-same-structure
  • Modules with different structures: projects/multi-module/ant/java-ant-modules-different-structures

Multi-module and Multi-language Project

Since SonarQube 3.3, it is possible to run an analysis on a multi-module project whose modules contains source code from different languages.

In addition to the multi-module configuration, the only mandatory property to set is the language for each module:

module.sonar.language

To help you getting started, a multi-language project sample is available on github that can be browsed or downloadedprojects/languages/multi-language/multi-language-java-javascript-ant

Advanced Usage

Additional analysis parameters can be defined in the build.xml file or through command-line parameters. 

  • No labels