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:
- if you have Git, just clone the repository
- if you don't have Git, download the repository at https://github.com/SonarSource/sonar-examples/zipball/master
Building and Deploying a Plugin
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
- clone https://github.com/SonarSource/sonar-eclipse
- run an initial Maven build from the command line: mvn clean install
- import everything into Eclipse as a Maven project (the Tycho connector should be installed automatically)
- in Eclipse preferences, configure a new variable in Run/Debug > String substitution: M2_REPO = /path/to/your/local/m2/repo
- open and activate one of the following target platforms:
- If you want to work with Kepler: target-platform-e43/target-platform-e43-dev.target
- If you want to work with Juno: target-platform-e42/target-platform-e42-dev.target
- you may have to use quick fix to ignore some m2e Lifecycle execution not covered errors
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.