Finding difficulties in excluding files and directories from sonar analysis


I’m trying to setup scans for our C++ project. The configuration is completed and analysis is happening too. However facing difficulties in setting the exclusion correctly. Below is my code snippet

if [[ ${Project,,} == "app1" ]]; then
elif [[ ${Project,,} == "app2" ]]; then

sonar-scanner- -X \$SONAR_DIR/output \
  -Dsonar.projectKey="${Sonar_key}" \"${SONAR_HOST_URL}" \
  -Dsonar.token="${Sonar_token}" \"${Coverage_branch}" \
  -Dsonar.projectBaseDir="${source_dir}/src" \
  -Dsonar.cfamily.gcov.reportsPath="${coverage_dir}" \

The exclusions are not working for all the directories. Below is the log for app2 -

INFO: Scanner configuration file: /root/sonar/sonar-scanner-
INFO: Project root configuration file: NONE
INFO: SonarScanner
INFO: Java 11.0.11 AdoptOpenJDK (64-bit)
INFO: Linux 5.10.43-flatcar amd64
INFO: User cache: /root/.sonar/cache
INFO: Scanner configuration file: /root/sonar/sonar-scanner-
INFO: Project root configuration file: NONE
INFO: Analyzing on SonarQube server
INFO: Default locale: "en_US", source code encoding: "US-ASCII" (analysis is platform dependent)
INFO: Load global settings
INFO: Load global settings (done) | time=777ms
INFO: Server id: xxxxxxxxxxxxxxxxxx
INFO: User cache: /root/.sonar/cache
INFO: Load/download plugins
INFO: Load plugins index
INFO: Load plugins index (done) | time=184ms
INFO: Load/download plugins (done) | time=64502ms
INFO: Loaded core extensions: developer-scanner
WARN: SonarScanner will require Java 17 to run, starting in SonarQube 10.3
INFO: Process project properties
INFO: Process project properties (done) | time=1ms
INFO: Execute project builders
INFO: Execute project builders (done) | time=2ms
INFO: Project key: xxxxxxxxxxxxxxxxx
INFO: Base dir: /src/app2/src
INFO: Working dir: /src/app2/src/.scannerwork
INFO: Load project settings for component key: 'xxxxxxxxxxxxxxxxx'
INFO: Load project settings for component key: 'xxxxxxxxxxxxxxxxx' (done) | time=134ms
INFO: Load project branches
INFO: Load project branches (done) | time=127ms
INFO: Load branch configuration
INFO: Found manual configuration of branch/PR analysis. Skipping automatic configuration.
INFO: Load branch configuration (done) | time=2ms
INFO: Load quality profiles
INFO: Load quality profiles (done) | time=181ms
INFO: Load active rules
INFO: Load active rules (done) | time=6750ms
INFO: Load analysis cache
INFO: Load analysis cache | time=240ms
INFO: Branch name: develop
INFO: Load project repositories
INFO: Load project repositories (done) | time=140ms
INFO: Indexing files...
INFO: Project configuration:
INFO:   Excluded sources: **/app2/src/base/ndd/*, **/app2/src/base/date/*, **/app2/src/base/abc.cpp, **/app2/src/base/boost/**, **/app2/src/base/oidc*
INFO: 92 files indexed
INFO: 0 files ignored because of inclusion/exclusion patterns
INFO: 1 file ignored because of scm ignore settings
INFO: Quality profile for c: Sonar way
INFO: Quality profile for cpp: Nasdaq Sonar way
INFO: Quality profile for py: Sonar way
INFO: ------------- Run sensors on module xxxxxxxxxxxxxxxxx
INFO: Load metrics repository
INFO: Load metrics repository (done) | time=142ms
INFO: Sensor C# Project Type Information [csharp]
INFO: Sensor C# Project Type Information [csharp] (done) | time=1ms
INFO: Sensor C# Analysis Log [csharp]
INFO: Sensor C# Analysis Log [csharp] (done) | time=18ms
INFO: Sensor C# Properties [csharp]
INFO: Sensor C# Properties [csharp] (done) | time=0ms
INFO: Sensor HTML [web]
INFO: Sensor HTML [web] (done) | time=4ms
INFO: Sensor TextAndSecretsSensor [text]
INFO: 69 source files to be analyzed
INFO: 69/69 source files have been analyzed
INFO: Sensor TextAndSecretsSensor [text] (done) | time=1774ms
INFO: Sensor VB.NET Project Type Information [vbnet]
INFO: Sensor VB.NET Project Type Information [vbnet] (done) | time=3ms
INFO: Sensor VB.NET Analysis Log [vbnet]
INFO: Sensor VB.NET Analysis Log [vbnet] (done) | time=19ms
INFO: Sensor VB.NET Properties [vbnet]
INFO: Sensor VB.NET Properties [vbnet] (done) | time=0ms
INFO: Sensor gcov [cpp]

Below files and directories never gets excluded -

  • **/app2/src/base/date/

  • **/app2/src/base/tz.cpp

Tried with /src/base/date too nothing is working.

Some of the directories is getting excluded for ex., **/app2/src/base/ndd/*, but how its working for some dir, i’m not understanding.

On enabling debug found below 2 line for **/app2/src/base/tz.cpp and **/app2/src/base/date/

12:30:02.150 INFO: Cache hit for: /src/app2/src/base/tz.cpp
12:30:04.745 DEBUG: Detection of duplications for /src/app2/src/base/tz.cpp

However the same was not found for /ndd.

Finally I was able to get the exclusion working. After reading this post thoroughly, replaced my exclusion as below

sonar_exclusion="**/date/*, **/ndd/*, **/base/tz.cpp, **/boost/**, **/base/oidc*"

Though my issue is resolved still i’m not understanding how did it not work at first when I was giving full path like below

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.