Local and Remote Mode
When using Sonar in Eclipse, two modes are available:
This is the default mode. Information showed in the remote mode is coming from a remote Sonar server. This means that this information has been computed during the latest analysis on that server.
Thus, you will not see violations introduced in the code that you just added or changed.
When switching to the local mode, information displayed is coming from the latest local analysis.
Thus, you can see the violations introduced in the code that you just added or changed.
Switch from One Mode to Another
To switch from one mode to another, right-click on the project, then select Sonar > Mode > Remote or Local:
When switching to the Local mode, a local analysis will be run automatically.
At any time, to run another local analysis, right-click on the project, then select Sonar > Run Local Analysis:
While browsing the source code, SonarQube in Eclipse highlights issues. But its added value is to be able highlight the new issues that you have introduced while adding/modifying the source code. You can thus check your code prior to pushing it to the SCM to make sure that you haven't introduced any new issues.
Running an Analysis
To run a new analysis, right click on your project and go to SonarQube > Analyze. You can also hit Ctrl+Alt+Q wherever you are in your project to trigger a new analysis.
By default, the analysis mode is incremental. Because only new/modified files are checked, you get feedback and the list of new issues very quickly.
Note that you can also run an analysis on a working set. This allows you to trigger several analyses at once on all the projects of the working set.
Parameters are retrieved as defined below:
- Parameters defined in the SonarQube Web UI
- Parameters set in the pom.xml file (for Maven projects only, with the m2e connector installed) will override parameters defined in the UI
- Parameters defined in Eclipse will override parameters defined in the pom file (go to Window > Preferences > SonarQube > Preview analysis properties)
- Parameters defined at project level in Eclipse will override parameters defined at Eclipse level (right click on the project and go to Properties > SonarQube > Preview analysis properties)
Some plugins (useless for a local preview analysis) can be skipped during the local analyses thanks to the '
The default value is '"devcockpit,pdfreport,report,scmactivity,views',jira". For example, to skip the Build Stability plugin (due to https://jira.codehaus.org/browse/SONARIDE-346), set the property to 'devcockpitedevcockpit,pdfreport,report,scmactivity,views,jira,buildstability'".
Violations View (displays local or remote information depending on the selected mode)
The Violations view displays the list of violations of the selected resource (project, file, etc.):Image Removed
To refresh violations of resources from remote server, click on the Refresh button.
Last Analysis Date
There are two ways to know when the last analysis was run on a project:
- Right-click on the project in the Project Explorer, and then Properties > SonarQube
- This date can be displayed on the navigation views, like the Project explorer or the Navigator. This option is not active by default. To activate it, go to Window > Preferences > General > Appearance > Label Decorations and check SonarQube Analysis Date Decorator:
Browsing the Issues
Four different views are available to browse the quality of your projects:
- SonarQube Issues that list the issues on the selected component
- SonarQube Issue Editor to review the issue
- SonarQube Rule Description to get the detailed description of the rule that is violated
- SonarQube Web Browser
The SonarQube Issues view displays the list of issues of the selected component (project, module, file, etc.). To display this view, go to Window > Show View > Other... > Sonar SonarQube > Violations.
Note that Problems and Markers views also displays Sonar violations.
Web View (displays remote information only)
The Web view displays the main project dashboard (for project) or the resource viewer (for class or file).
This web page can also be used to access information and services (Clouds, Hotspots, etc.) that are not available in Sonar Eclipse.
This view is automatically displayed when clicking on Sonar > Open in Sonar SonarQube Issues. Problems and Markers views also display issues.
Issues are flagged in the source code viewer. New issues (compared to the latest version on the SonarQube server) are highlighted in yellow. This allows you to focus on the new issues that you have introduced.
You can add/remove/order columns, group issues (by severity, new issues only, ...), filter issues (new issues only, issues assigned to me, ...), sort (by assignee, ...).
Note that "Resolved" issues are not displayed.
SonarQube Issue Editor
This view allows you to review the selected issue (add comments, confirm it, plan it, etc.) the same way you would do it through the web interface. To display this view, go to Window > Show View > Other... > SonarQube > SonarQube Issue Editor.
Note that it is not possible to review new issue that you have introduced.
SonarQube Rule Description
This view allows you to access the detailed description of the coding rule of the selected issue. To display this view, go to Window > Show View > Other... > SonarQube > SonarQube Rule Description.
SonarQube Web Browser
This view allows you to access the SonarQube web interface. This view is automatically displayed when clicking on SonarQube > Open in SonarQube server. It can also be displayed by going to to Window > Show View > Other... > Sonar > Sonar Web Browser.
No issues are displayed
It happens when the source folders are not properly set in Eclipse.
Let's take the C/C++ project sample for instance. When you import it into Eclipse, by default the source folder is set to /cpp-sonar-runner (and not to /cpp-sonar-runner/src):
Therefore, SonarQube will try to retrieve data from files whose fully qualified names are src/BiggestUnInt.cc, src/HelloWorld.cpp, etc. It will find none as the fully qualified names in SonarQube are BiggestUnInt.cc, HelloWorld.cpp, etc. (without "src/"):
Hence, you won't get any issue displayed in remote mode in Eclipse.
But if you set the source folder to cpp-sonar-runner/src instead:
you will get issues displayed: