Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tip
titleLive example

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.

On top of the coding rules provided by the SonarQube engine, you can activate rules from CheckstyleFindBugsPMDClirrfb-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 and SonarQube IntelliJ plugins for tracking issues while coding. It is also compatible with the Issues Report plugin to run pre-commit local analysis.

Installation

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

Usage

Run a SonarQube Analysis

To run an analysis of your Java project, you can use the following analyzers:

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

Notes:

  • 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
titleMyClass.java
linenumberstrue
languagejava
package com.mycompany.mypackage;
...

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

Code Block
titleLog
languagenone
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 > 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, see Code Coverage by Unit Tests for Java Project tutorial.

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

To Go Further

Upgrade Notes

Version 1.5

  • Property sonar.surefire.reportsPath is deprecated. Use sonar.junit.reportsPath instead.
Wiki Markup
{iframe:src=http://redirect.sonarsource.com/plugins/java.html|width=700|height=300|frameborder=0}
Documentation has been moved to [http://redirect.sonarsource.com/plugins/java.html].
{iframe}