Skip to content

CXX Custom Rules

Günter Wirth edited this page Mar 7, 2024 · 8 revisions

The cxx plugin makes it possible to add custom rules written in Java. In general, there are three ways to add coding rules to SonarQube:

The Java API will be more fully-featured than what's available for XPath, and is generally preferable. However, this comes with the overhead of maintaining a SonarQube plugin (including keeping it up-to-date as APIs change, upgrading the plugin after releasing a new version).

Importing generic issue reports is a good solution when there's a very specific need for a subset of projects on your SonarQube instance. They are the most flexible option but lack some features (such as being able to control their execution by inclusion in a quality profile).

Writing a SonarQube plugin in Java that uses SonarQube APIs to add new rules

Writing custom rules for C++ is a six-step process:

  • Create a new SonarQube plugin.
  • Put a dependency on the API of the cxx plugin.
  • Create as many custom rules as required.
  • Generate the SonarQube plugin (jar file).
  • Place this jar file in the SONARQUBE_HOME/extensions/plugins directory.
  • Restart SonarQube Server.

The description Plugin Basics is a good starting point for writing your own extensions. In addition, Adding Coding Rules gives further useful hints.

Example Plugin

You can use https://github.com/SonarOpenCommunity/cxx-custom-checks-example-plugin as a base for your rules.

Clone this wiki locally