Перейти до змісту

SonarScanner CLI

Сканер — окремий інструмент, який запускається на машині з вихідним кодом і відправляє результати аналізу на сервер SonarQube. Встановлюється незалежно від того, як розгорнутий сам сервер.


1. Встановлення на Windows

1.1 Завантаження та розпакування

$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -UseBasicParsing "https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-6.2.1.4610-windows-x64.zip" -OutFile "$env:TEMP\scanner.zip"
Expand-Archive -Path "$env:TEMP\scanner.zip" -DestinationPath "C:\SonarScanner" -Force

1.2 Додавання в PATH

$scannerPath = (Get-ChildItem "C:\SonarScanner" -Directory | Select-Object -First 1).FullName
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$scannerPath\bin", "Machine")

1.3 Перевірка

sonar-scanner --version

2. Встановлення на Linux

2.1 Java для сканера

java -version

Якщо Java не встановлена:

sudo apt install -y openjdk-17-jre unzip
sudo dnf install -y java-17-openjdk

2.2 Завантаження та розпакування сканера

cd ~
curl -O https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-6.2.1.4610-linux-x64.zip
unzip sonar-scanner-cli-6.2.1.4610-linux-x64.zip
sudo mv sonar-scanner-6.2.1.4610-linux-x64 /opt/sonar-scanner

2.3 Додавання в PATH

echo 'export PATH="/opt/sonar-scanner/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

2.4 Перевірка

sonar-scanner --version

3. Створення проєкту та токена

  1. У веб-інтерфейсі SonarQube перейдіть у:

    Projects → Create Project → Locally

  2. Задайте Project Key та назву проєкту.

  3. Згенеруйте токен аналізу:

    My Account → Security → Generate Tokens

  4. Оберіть тип токена:

    Project Analysis Token

  5. Збережіть значення токена.


4. Запуск сканування

Команда однакова для всіх платформ:

sonar-scanner \
  -Dsonar.projectKey=КЛЮЧ_ПРОЄКТУ \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://<адреса_сервера>:9000 \
  -Dsonar.token=ТОКЕН

5. Виключення файлів з аналізу

За потреби виключіть з аналізу бінарні файли й сторонні бібліотеки:

-Dsonar.exclusions=**/bin/**,**/obj/**,**/*.dll,**/*.png,**/*.gif,**/*.bmp,**/*.pdb,**/*.woff2,**/*.ttf

6. Наступні кроки

  • Налаштувати CI/CD інтеграцію (GitLab / GitHub / Jenkins) для автоматичного аналізу на кожен push