Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
NameJava Ecosystem
Latest version12.1 ( 22 December 2012 25 march 2014 )
Requires Sonar SonarQube version34.42 or higher ( check version compatibility )
LicenseGNU LGPL 3
Issue tracker
titleLive example

If you want to see a live example of the capabilities of the Java Ecosystem, you can have a look at Sonar SonarQube on SonarSonarQube.

Description / Features

The Java Ecosystem is a set of Sonar plugins used to monitor the quality of Java projects within SonarSonarQube.


The Java Ecosystem is a set of plugins:


On top of the coding rules provided by the


  • Checkstyle [sonar-checkstyle-plugin]: to check code against rules provided by Checkstyle
  • FindBugs [sonar-findbugs-plugin]: to check code against rules provided by FindBugs
  • PMD [sonar-pmd-plugin]: to check code against rules provided by PMD
  • Surefire [sonar-surefire-plugin]: to execute unit tests with Surefire
  • Cobertura [sonar-cobertura-plugin]: to get code coverage with Cobertura 
  • JaCoCo [sonar-jacoco-plugin]: to get code coverage with JaCoCo

Note that by SonarQube engine, you can activate rules from CheckstyleFindBugsPMDClirr, and fb-contrib. However, we highly recommend that you limit your Quality Profiles to from the SonarQube engine because we believe they are faster, more accurate (fewer false positives and false negatives), and more usable (they have better descriptions, etc). Read this blog post for more details.


By default the Java Ecosystem is provided with SonarSonarQube.You  You can update it from the Update Center (since Sonar 3.5) or  or download the latest release from this page header. Don't forget to check the upgrade notes.


Run a


SonarQube Analysis

To launch a Sonar run an analysis of your Java project, it is recommended to you can use the following analyzers:

Sample projects for each analyzer are available on GitHub that can be browsed or downloaded: /projects/languages/java


  • The source directory must be set to the directory containing the top parent package. For example, if your directory structure is src/main/java/com/mycompany/..., the source directory must be set to src/main/java.
  • The source directory tree must match the package declaration. For example, the following class:
Code Block
package com.mycompany.mypackage;

must be located in the following directory: [mySourceDirectory]/com/mycompany/mypackage/ Otherwise you would get an error like below while running your analysis:

Code Block
Exception in thread "main" org.sonar.batch.bootstrapper.BootstrapException: org.sonar.squid.api.AnalysisException: Got an exception - org.sonar.squid.api.AnalysisException: The source directory does not correspond to the package declaration com.mycompany.mypackage, file : ..\src\

Tests and Code Coverage

The default code coverage engine for unit tests can be set in Settings > Configuration > General Settings > Java > Code coverage plugin property.

By default the code coverage engine is JaCoCo, but CoberturaEmma or Clover can also be used.

To deal with unit tests and code coverage for Java project in Sonar, see Code Coverage by Unit Tests for Java Project tutorial.

To deal with integration tests and code coverage for Java project in Sonar, see Code Coverage by Integration Tests for Java Project tutorial.

Advanced Settings

Documentation on advanced parameters is available on the Analysis Parameters page.

Advanced parameters specific to Java are:

KeyDescriptionDefault value


Deactivate Java bytecode analysis. The Java bytecode is analyzed by Sonar in order to extract dependencies between packages and files. These dependencies are used for instance to display the DSM (Dependency System Matrix). This bytecode analysis can be deactivated.


Java version of the source code. This property is not used by the Sonar core but can be used by Java Sonar plugin like the PMD plugin. 



See Java Ecosystem FAQ.

Java Metrics

See Java Metric Definitions.



To Go Further


New coding rules can be added using XPath. See the related documentation.


Change Log

JIRA Issues
titleRelease 1.1

Upgrade Notes

Version 2.0

This version no longer includes the Checkstyle and PMD plugins. Therefore, you should install those two plugins if you're still using some of their rules.

All the valuable rules from PMD and Checkstyle were rewritten based on our own SSLR technology. These rules are now available in the SonarQube repository. Deprecated rules from PMD and Checkstyle are flagged as so and their replacement is stated in the rule description:

Image Added

See for more details.

Version 1.5

  • Property sonar.surefire.reportsPath has been removed and replaced by sonar.junit.reportsPath.