How to use the command sonar-scanner (with examples)
The sonar-scanner
command is a generic scanner for SonarQube projects that do not use build tools such as Maven, Gradle, or Ant. It allows you to analyze your project’s source code and provide feedback on its quality.
Use case 1: Scan a project with configuration file in your project’s root directory
Code:
sonar-scanner
Motivation: This use case is helpful when you have a project with a sonar-project.properties
configuration file in its root directory.
Explanation: By running the sonar-scanner
command without any additional arguments, it will automatically look for a sonar-project.properties
file in the current directory and use it for the analysis. This file contains the necessary information to connect to a SonarQube server and configure the analysis.
Example output:
INFO: Scanner configuration file: /path/to/sonar-scanner/conf/sonar-scanner.properties
INFO: Project root configuration file: /path/to/project/sonar-project.properties
INFO: SonarScanner 4.6.2.2472
INFO: ...
Use case 2: Scan a project using configuration file other than sonar-project.properties
Code:
sonar-scanner -Dproject.settings=myproject.properties
Motivation: Sometimes you may have a project with a different name or location for its SonarQube configuration file, and you want to specify it explicitly.
Explanation: The -Dproject.settings
argument is used to specify the path to the SonarQube configuration file for the project. In this use case, we pass the path to the myproject.properties
file.
Example output:
INFO: Scanner configuration file: /path/to/sonar-scanner/conf/sonar-scanner.properties
INFO: Project root configuration file: /path/to/project/myproject.properties
INFO: SonarScanner 4.6.2.2472
INFO: ...
Use case 3: Print help information
Code:
sonar-scanner -h
Motivation: If you need a quick reference or reminder of the available options and arguments for the sonar-scanner
command, you can use this use case to print the help information.
Explanation: The -h
argument is used to print the help information for the sonar-scanner
command. It will display a summary of the available options and their descriptions.
Example output:
Usage:
sonar-scanner [options]
...
-h, --help
Display help information
...
Use case 4: Print debugging information
Code:
sonar-scanner -X
Motivation: If you’re experiencing issues or need to debug the analysis process, you can use this use case to enable debugging logging.
Explanation: The -X
argument enables debug mode for the sonar-scanner
command. It will output detailed debugging information during the analysis process, helping you diagnose and resolve any issues.
Example output:
INFO: Scanner configuration file: /path/to/sonar-scanner/conf/sonar-scanner.properties
DEBUG: sonar-scanner 4.6.2.2472
DEBUG: Java 11.0.12 AdoptOpenJDK (64-bit)
DEBUG: Linux 5.11.0-41-generic amd64
DEBUG: User cache: /home/user/.sonar/cache
...
Conclusion
The sonar-scanner
command provides a convenient way to analyze SonarQube projects without relying on build tools. By utilizing its various options and arguments, you can customize the analysis process to fit your project’s requirements and obtain valuable feedback on your code’s quality.