Перейти к содержанию

Раздел 7. Установка подсистемы

Процесс развертывания SonarQube и его интеграции с имеющимся окружением (сборочная система, сервер непрерывной интеграции, система контроля версий) не вызывает затруднений благодаря большому количеству подробной документации. Достаточно легко настраиваются виджеты, позволяющие оценивать как состояние портфолио проектов в целом, так и состояние каждого проекта в отдельности.

Наиболее актуальная информация по установке сервера «SonarQube» и его компонент находится на официальной странице установки сервера SonarQube и его компонент от производителя https://docs.sonarqube.org/latest/setup/install-server.

В данном руководстве приведены самые важные и полезные особенности установки.

Установка сервера проверки SonarQube

В данном параграфе приводится список действий для установки на локальной машине пользователя под управлением операционной системы MS Windows 10 x64. Для системы Unix необходимо выполнить аналогичные действия.

  1. Изучите соответствие версий JDK, SonarQube и Sonar-scanner в разделе Раздел 5. Необходимые компоненты и определите необходимые версии.
  2. Скачайте последний релиз SonarQube с официального сервера.
  3. Извлеките файлы в каталог, с которого будет запускаться сам сервер SonarQube. В дальнейшем этот каталог будет указываться как %SONARQUBE_HOME%
  4. Определите разрядность операционной системы для выбора вида Java Development Kit: 32-разрядная или 64-разрядная.
  5. По возможности мы рекомендуем использовать «OracleJDK» вместо «OpenJDK» из-за более агрессивной работы сборщика мусора.
  6. Скачайте и установите Java Development Kit необходимой разрядности (х86 для 32-битной ОС, х64 – для 64-разрядной).

Подключение плагина «SonarQube 1C (BSL) Plugin» и активация лицензии

В комплекте подсистемы поставляется jar-файл плагина и файл лицензии «sonarqube-bsl-plugin.lcs». Далее описывается порядок действий по интегрированию плагина в платформу SonarQube и активации его лицензии. Все нижеописанные действия должны выполняться пользователем с правами администратора.

Порядок действий:

  1. Файл плагина (jar-файл) поместите в директорию «extensions/plugins» каталога, в который был разархивирован сервер SonarQube.
  2. Файл лицензии «sonarqube-bsl-plugin.lcs» поместите в домашнюю директорию пользователя, под которым запускается сервис SonarQube.
  3. Для Windows – в следующую системную директорию: «C:\Windows\System32\config\systemprofile» (в режиме администратора).
  4. Для Linux – положите указанный файл в каталог пользователя.
  5. Также можно указать произвольное местоположение файла лицензий. Для этого в файле «%SONARQUBE_HOME%/conf/sonar.properties» необходимо изменить расположение файла лицензий в блоках "web" и "ce" вида:
sonar.web.javaAdditionalOpts=-Dorg.silverbulleters.sonar.plugins.bsl.license.file=/path/to/sonarqube-bsl-plugin.lcs
sonar.ce.javaAdditionalOpts=-Dorg.silverbulleters.sonar.plugins.bsl.license.file=/path/to/sonarqube-bsl-plugin.lcs 

Если вы переименуете файл лицензии, плагин сможет его найти только при указании произвольного местоположения (см п.5 выше). При этом расширение файла менять нельзя. Лицензии с расширением lcs предназначены для плагина версии 2022.7 и более новых и отличаются от прежних лицензий lic форматом содержимого и механизмами проверки.

Запуск и настройка сервера SonarQube

  1. На Windows запустите web-сервер SonarQube, создав службу Windows и включив её (соблюдайте разрядность операционной системы).

Можно воспользоваться инструментом в поставке сервера в каталоге «%SonarHome%\bin\windows-x86-64» – «InstallNTService.bat», «StartNTService.bat», «StopNTService.bat»

Следует учитывать, что указанные процедуры необходимо выполнять с правами локального администратора.

  1. Перейдите в браузере по адресу http://localhost:9000 и убедитесь, что локальный сервер SonarQube запущен:

image-20200812114043798

  1. Войдите в систему управления под учетной записью «admin» с паролем «admin» Перейдите в настройки установки плагинов сервера:

image-20200812114208887

image-20200812114242117

  1. Установите расширение «Russian pack» для подключения русского языка, что упростит вашу дальнейшую работу с плагином:

image-20200812114342177

  1. После изменения надписи «Install» на «Install pending» (надпись изменит цвет с синего на зеленый) перезапустите сервер последовательным выключением – включением службы (через консоль «Службы» или с помощью вышеперечисленных инструментов из поставки сервера).
  2. Подождите до 5 минут и проверьте доступность Web-интерфейса SonarQube по пути http://localhost:9000. Если у вас выбран другой адрес веб-интерфейса сервера, укажите его.
  3. Перейдите по ссылке и войдите в систему под учетной записью admin (см. п4-п5);
  4. Перейдите на вкладку "Правила" и убедитесь в существовании языка 1С (BSL):

image-20200812114503045

  1. Если Вы не видите язык «1C (BSL)», тогда проверьте правильность установки файла лицензии или файла плагина. Если местоположение файла лицензии изменилось, перезапустите сервер SonarQube согласно разделу с подключением лицензии.

Настройка выделения оперативной памяти

Если у вас установлена 32-х битная версия JDK, необходимо донастроить файл «%SONARQUBE_HOME%/conf/sonar.properties» - в «javaOpts» компонентов «web, search и ce» указать параметр «-server». Пример приведен ниже. Если у вас установлена 64-х битная версия JDK, ключ -server указывать бессмысленно, так как он включен по умолчанию.

Выделение доступной оперативной памяти регулируется с помощью опции «-Xmx». Выделение памяти рекомендуется выполнить для 3-х серверных компонент «sonar.web.javaOpts, sonar.ce.javaOpts, sonar.search.javaOpts». Особенно для компонента «ce», выполняющего «серверную» часть анализа (обработка результатов, дорасчет серверных метрик, сохранение результатов в базу).

В Linux-системах могут возникнуть проблемы в отображении web-компонент (замедление работы), связанных с недостаточным количеством энтропии для применения шифрования. Побороть это можно, изменив параметр -Djava.security.egd.

Часть конфигурационного файла «%SONARQUBE_HOME%/conf/sonar.properties» с одного из наших production-серверов (Java 11, 64-x):

sonar.web.javaOpts=-Xmx2G -XX:+HeapDumpOnOutOfMemoryError \
-Djava.security.egd=file:/dev/./urandom

sonar.ce.javaOpts=-Xmx6G -XX:+HeapDumpOnOutOfMemoryError

sonar.search.javaOpts=-server -Xmx1G -Xms256m -Xss256k -Djna.nosys=true \
-XX:+HeapDumpOnOutOfMemoryError

Обратите внимание, что использование ключа -XX:+UseConcMarkSweepGC, не рекомендовано, так как данный сборщик мусора объявлен устаревшим начиная с Java 9. Это же и касается ключа -XX:+UseParNewGC. Данный сборщик был объявлен устаревшим в Java 9 и удален в Java 10.

Согласно этому конфигурационному файлу сервер SonarQube должен иметь минимум 9 гигабайт (-Xmx 2 + 6 + 1) свободной памяти для своей работы + некоторое количество памяти для работы Elasticsearch.

Установка инструмента сканирования Sonar-Scanner

В данном руководстве описываются действия по установке платформы «SonarQube» с использованием плагина «SonarQube 1C (BSL) Plugin» и настройке инструмента анализа кода «Sonar-Scanner».

Чтобы иметь возможность запустить сервер проверки SonarQube в любом каталоге, следует настроить инструмент Sonar-Scanner по описанному ниже алгоритму:

  1. Скачайте архив службы по ссылке из раздела «Необходимые компоненты» Извлеките файлы из архива; каталог должен иметь подобный вид:

image-20200812115226483

  1. Добавьте переменную окружения типа %PATH% со ссылкой на каталог bin (это делается для того, чтобы можно было запускать службу Sonar-Scanner из любого каталога):

image-20200812115252110

  1. Установка параметров клиентской части анализа (Sonar-scanner) производится через установку переменной среды «SONAR_SCANNER_OPTS».

Пример указания (для Windows, Java 8):

sh set SONAR_SCANNER_OPTS=-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xmx2G Пример указания (для Windows, Java 9+):

sh set SONAR_SCANNER_OPTS=-Xmx2G

  1. Настройте антивирус для увеличения производительности анализа

Каталоги «%USERPROFILE\.sonar» и подкаталог «.scannerwork» добавьте в исключения антивируса. Подкаталог «.scannerwork» автоматически создается в рабочем каталоге проекта