| Live example If you want to see a live example of the capabilities of the Java Ecosystem, you can have a look at Sonar on Sonar. |
Description / Features
The Java Ecosystem is a set of Sonar plugins used to monitor the quality of Java projects within Sonar.
Installation
The Java Ecosystem is provided with Sonar.
As any other plugins, you can update it through the Update Center or download new version into the SONAR_HOME/extensions/plugins directory. Then restart the Sonar server.
Usage
Run a Sonar Analysis
To launch a Sonar analysis of your Java project, it is recommended to use:
- Maven for Maven projects
- Ant for Ant projects
- Sonar Runner otherwise
Sample projects for each analyzer are available on GitHub that can be browsed or downloaded: /projects/languages/java
Unit Tests and Code Coverage Reports
The default code coverage engine for unit tests can be set in Settings > Configuration > General Settings > Java > Code coverage plugin property.
By default code coverage engine is JaCoCo but Cobertura, Emma or Clover can also be used.
See also Code Coverage by Unit Tests tutorial.
JaCoCo
JaCoCo is an open source and robust Java code coverage tool, developed by the authors of EclEmma.
For more information, see: Comparison of Emma, Clover, Cobertura and JaCoCo.
Known limitations:
- Some libraries complain on classes, which were instrumented by JaCoCo, so exclusions must be set:
- Javassist (e.g. when Hibernate used) - "*_javassist_*"
- Drools - "org.drools.*"
- Exact number of line hits not available, because JaCoCo reports only status of line (no code, not covered, partly covered, fully covered) - see JaCoCo Coverage Counters.
Cobertura
The Sonar Cobertura plugin is based on the cobertura-maven-plugin and so can only be used to compute code coverage information on Maven projects.
This plugin has only one parameter to define the maximum amount of memory used by the java process in charge to extract all code coverage information from the Cobertura report:
In case the cobertura-maven-plugin is defined in the pom.xml of your project, Sonar will use the version defined in the pom and can potentially not function properly. |
Android
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.
Change Log

