Full documentation for SonarQube has moved to a new location: http://docs.sonarqube.org/display/SONAR

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 41 Next »


To create a SonarQube plugin, you need Java 6 or later. Maven is required to compile and package the plugin.

Creating a New Plugin

The recommended way is to duplicate one of the examples located in the plugins directory of the following GitHub repository: https://github.com/SonarSource/sonar-examples. If you aren't sure which plugin to use, then select plugins/sonar-reference-plugin.

There are two ways to copy the example:

  1. if you have Git, just clone the repository
  2. if you don't have Git, download the repository at https://github.com/SonarSource/sonar-examples/zipball/master

Building and Deploying a Plugin

Simply execute:

from the root directory, for example /path/to/sonar-reference-plugin. The JAR file is generated in the target directory.

Then, copy the JAR to the SONARQUBE_HOME/extensions/plugins directory and restart your SonarQube server.

Next step is: coding a plugin.

Working on SonarQube Eclipse Plugin in Eclipse


  1. Java at least 1.6
  2. Maven at least 3.0.4




  1. clone https://github.com/SonarSource/sonar-eclipse
  2. run an initial Maven build from the command line: mvn clean install
  3. import everything into Eclipse as a Maven project (the Tycho connector should be installed automatically)
  4. in Eclipse preferences, configure a new variable in Run/Debug > String substitution: M2_REPO = /path/to/your/local/m2/repo
  5. open and activate one of the following target platforms:
    1. If you want to work with Kepler: target-platform-e43/target-platform-e43-dev.target
    2. If you want to work with Juno: target-platform-e42/target-platform-e42-dev.target
At this point everything should be green in Eclipse, and you should be able to run/debug SonarQube Eclipse plugin. 

If you're working in Linux, consider using Kepler. We find it to be more stable than Juno on Linux.
  • No labels