|Latest version||1.12 ( 22 December 2012 13 March 2013 )|
|Requires Sonar SonarQube version||3.4 or higher ( check version compatibility )|
|License||GNU LGPL 3|
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 Sonar.SonarQube.
The Java Ecosystem is a set of plugins:
- Mandatory plugins:
Java [sonar-java-plugin]: to parse Java code source, compute metrics, etc.
- Squid [sonar-squid-java-plugin]: to compute additional metrics, check code against rules provided by the Sonar SonarQube engine
- Optional plugins adding features from external tools:
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 default the Java Ecosystem is provided with SonarSonarQube. You can update it from the Update Center (since Sonar SonarQube 3.5) or download the latest release from this page header.
To launch a Sonar run an analysis of your Java project, it is recommended to use the following analyzers:
- The source directory should 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 has to match the package declaration. For example, the following class:
package com.mycompany.mypackage; ...
must be located in the following directory: [mySourceDirectory]/com/mycompany/mypackage/MyClass.java. Otherwise you would get such an error while running your analysis:
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\MyClass.java ...
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.
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.
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 Compatibility of the your source code regarding Java version.
This property is not used by the Sonar core SonarQubecore but can be used by Java Sonar plugin SonarQube plugins like the PMD plugin.
To navigate the AST, download the SSLR Java Toolkit.