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)
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... > SonarQube > 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 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: