Versions Compared

Key

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

...

NameJava Ecosystem
Latest version1.2 ( 13 March 2013 )
Requires Sonar version3.4 or higher ( check version compatibility )
DownloadJavaEcosystem-1.2.zip
LicenseGNU LGPL 3
DevelopersSonarSource
Issue trackerhttp://

...

...

...

Tip
titleLive 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 ecosystem enables analysis of Java Ecosystem is a set of Sonar plugins used to monitor the quality of Java projects within Sonar.

It is compatible with the Sonar Eclipse plugin to track violations while coding. It is also compatible with the Issues Report plugin to run pre-commit local analysis.

Installation

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 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 Sonar.

As any other plugins, you You can update it through the it from the Update Center or download new version into the SONAR_HOME/extensions/plugins directory. Then restart the Sonar server. (since Sonar 3.5) or download the latest release from this page header.

Usage

Run a Sonar Analysis

...

To launch a Sonar analysis of your JavaScript Java project, use the Sonar Runner.A sample project is it is recommended to 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 should be set to the directory containing the top parent package. For example, if your directory structure is 'src/

...

Run a Sonar Analysis with the other Analyzers

Maven and Ant can also be used to launch analysis on Java projects.

Unit Tests and Code Coverage Reports

 

  • 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:
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 such an error 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 > 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

sonar.skipDesign

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.

false

sonar.java.source

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. 

1.5

FAQ

See Java Ecosystem FAQ.

Metrics

See Metrics documentation page.

Android

A sample project with code coverage computed with Emma is available on GitHub that can be browsed or downloaded: /projects/android

Extending Coding Rules using XPath

...

To navigate the AST, download the SSLR the SSLR Java Toolkit.

Change Log

JIRA Issues
anonymoustrue
titleRelease 1.1Version 1.3 (unreleased)
renderModestatic
width900
columnstype;key;summary;priority;status
urlhttp://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor=19056&pid=12830&sorter/field=priority&sorter/order=DESC&tempMax=1000

JIRA Issues
anonymoustrue
titleVersion 1.2
renderModestatic
width900
columnstype;key;summary;priority
urlhttp://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor=18956&pid=12830&sorter/field=priority&sorter/order=DESC&tempMax=1000

JIRA Issues
anonymoustrue
titleVersion 1.1
renderModestatic
width900
columnstype;key;summary;priority
urlhttp://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor=18937&pid=12830&sorter/field=priority&sorter/order=DESC&tempMax=1000