Skip to content

Running the analysis

Waleri Enns edited this page May 6, 2014 · 16 revisions

The C++ Community plugin wont execute neither test runners not coverage tracers nor static checkers itself. All this data has to be provided in form of reports. See Running tools.

Usage

You can analyze your projects using the usual means (see this page for all available). All runners should work. See below for details.

The usual setup

Analysis of a C++ project involves usually three steps:

  1. Run the tools (see Running tools) which are of interest for you and store the results in a file somewhere underneath the root directory of your project. Its usually convenient to put this into the build system; a shell script may be a good choice, too.

  2. Provide a configuration using the file "sonar-project.properties". Set following properties, besides the standard ones:

  3. Make sure the SonarQube Server is running

  4. Use the SonarQube runner to start the analysis and feed the data into SonarQube. This usualy boils down to calling the runner in the root directory of your project:

$ cd <project root>
$ sonar-runner

There may be a Step '0' too: "use your build system to make a build suitable for running the Step 1". This may be the case for collecting coverage statistics when using gcc+gcov, for example.

For details how to invoke the tools and tie it all together see the sample project.

Maven projects

There is a maven plugin which automates running of a sonar analysis on a C++ project but requires a maven setup. Running a SonarQube analysis on maven projects is quite simple and usually a matter of:

  1. Getting and installing the cxx-maven-plugin (usage). If you use multiple source directories and depend on cxx:addsource goal, you shall use -Dsonar.phase=cxx:addsource option (see Sonar Maven Plugin Project Configuration )

  2. Setting the language property and the source directory in your pom:

  <properties>
    ...
    <sonar.language>c++</sonar.language>
    ...
  </properties>
 
  <build>
    ...
    <sourceDirectory> path </sourceDirectory>
    ...
  </build>
  1. Make sure your SonarQube server is running.

  2. Start the analysis with

$ mvn sonar:sonar

or

$ mvn sonar:sonar -Dsonar.phase=cxx:addsource

For details see the sample maven project.

Clone this wiki locally