|Latest version||1.35 ( 25 June 28 october 2013 )|
|Requires SonarQube version||3.6 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 SonarQube on SonarQube.
Description / Features
The Java Ecosystem is a set of plugins used to monitor the quality of Java projects within SonarQube.It
On top of the coding rules provided by the SonarQube engine, you can activate rules from Checkstyle, FindBugs, PMD, Clirr, fb-contrib. But, we highly recommend you to use rules from the SonarQube engine as much as possible because we believe that they are more accurate (fewer false positives and false negatives), faster and have better descriptions, etc. Read this blog post for more details.
The Java Ecosystem is compatible with the SonarQube Eclipse plugin to track for tracking issues while coding. It It is also compatible with the with the Issues Report plugin to run pre-commit local analysis.
The Java Ecosystem is a set of 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 SonarQube engine
- 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 By default the Java Ecosystem is provided with SonarQube. You You can update it from the Update Center (since SonarQube 3.5) or or download the latest release from this page header. Once the Java Ecosystem is installed, other plugins are available for download: Emma, Clover, etcDon't forget to check the upgrade notes.
Run a SonarQube Analysis
- The source directory should must be set to the directory containing the top parent package. For 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 must match the package declaration. For For example, the following class:
package com.mycompany.mypackage; ...
must be located in the following directory: [mySourceDirectory]/com/mycompany/mypackage/MyClass.java. Otherwise Otherwise you would get such an error like below 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 ...
The default code coverage engine for unit tests can be set in Settings > Configuration > General Settings > Java > Code coverage plugin property.
To deal with integration tests and code coverage, see Code Coverage by Integration Tests for Java Project tutorial.
Documentation on advanced parameters is available on the Analysis Parameters page.
Advanced parameters specific to Java are:
Compatibility of your source code regarding Java version.
This property is not used by the SonarQube core but can be used by Java SonarQube plugins like the PMD plugin.
See Java Ecosystem FAQ.
To Go Further
- Java Ecosystem FAQ
- Metric definitions
- Additional plugins are available:
- Android: sample projects with code coverage computed with Emma
- Extending Coding Rules using XPath
New coding rules can be added using XPath. See the related documentation.
- . To navigate the AST, download the SSLR Java Toolkit.
sonar.surefire.reportsPathis deprecated. Use