Skip to content
Поддержка языка 1С:Предприятие 8 и OneScript для SonarQube.
Java Kotlin 1C Enterprise
Branch: master
Clone or download
nixel2007 Синхронизация сохранения данных для cpd
cpdTokens.save() - не-потокобезопасная операция. При ряде сценариев возникает race-condition и NPE на CPD Sensor при сравнении данных токенов
Latest commit 0890bc5 Sep 2, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea Доустановка свойств сонар-плагина, смена artifactId по требованиям пу… Jul 19, 2019
docs Typo Aug 23, 2019
gradle/wrapper Update deps Aug 19, 2019
license
src Синхронизация сохранения данных для cpd Sep 2, 2019
.gitattributes init Dec 31, 2018
.gitignore init Dec 31, 2018
.travis.yml Update .travis.yml Jul 6, 2019
COPYING.LESSER.md init Dec 31, 2018
COPYING.md init Dec 31, 2018
README.md java version Aug 22, 2019
build.gradle.kts Бамп зависимости Aug 23, 2019
gradlew Upgrade gradle to 5.5.1 Jul 29, 2019
gradlew.bat Upgrade gradle to 5.5.1 Jul 29, 2019
settings.gradle.kts Upgrade gradle to 5.5.1 Jul 29, 2019

README.md

SonarQube 1C (BSL) Community Plugin

Build Status Quality Gate Maintainability Coverage telegram

Поддержка языка 1С:Предприятие 8 и OneScript для SonarQube.

Сайт проекта -> https://1c-syntax.github.io/sonar-bsl-plugin-community/

English version -> https://1c-syntax.github.io/sonar-bsl-plugin-community/en/

Возможности

  • Project "Overview" dashboard;
  • Подсветка исходного кода 1С:Предприятие;
  • Расчет базовых метрик, расчет количества строк кода;
  • Регистрация диагностик, предоставляемых BSL Language Server как внутренних правил;
  • Встроенный анализатор - BSL Language Server Diagnostic provider
  • Импорт результатов внешних анализаторов во внутреннем формате json;

Установка и обновление

  • Скачать jar-файл со страницы релизов
  • Разместить jar-файл согласно разделу Manual Installation официальной документации (по умолчанию - каталог $SONARQUBE_HOME/extensions/plugins)
  • Перезапустить сервер

Требования

Версия SonarQube Версия плагина
7.9+ 0.7.0+
7.4 - 7.8 0.1.0...0.6.0
Версия плагина Версия JAVA
1.0+ 11
0.1.0 - 0.6.0 8

Запуск анализа

Настройка окружения

Для анализа исходных кодов 1С используется утилита sonar-scanner.

Утилите неоходимо указать параметры анализа одним из нижеперечисленных способов:

  • в качестве аргументов командной строки, используя синтаксис -DимяПараметра=значениеПараметра
  • используя файл sonar-project.properties

Пример файла sonar-project.properties:

# Ключ проекта. Уникальный в пределах сервера SonarQube
sonar.projectKey=my_project
# Имя проекта, отображаемое в интерфейсе SonarQube. Значение по умолчанию - ключ проекта.
sonar.projectName=My project
# Версия проекта
sonar.projectVersion=1.0
 
# Путь к исходным кодам. Относительные пути разрешаются от файла sonar-project.properties
# В качестве разделителя пути используется прямой слэш - /. Можно указать несколько каталогов через запятую.
sonar.sources=src
 
# Кодировка файлов исходных кодов.
sonar.sourceEncoding=UTF-8

# Фильтры на включение в анализ. В примере ниже - только bsl и os файлы.
sonar.inclusions=**/*.bsl, **/*.os

Способы передачи параметров можно комбинировать.

Если на сервере SonarQube включено требование принудительной авторизации и/или запрет анонимного анализа проектов, утилите sonar-scanner дополнительно нужно передавать токен авторизации, который можно получить согласно инструкции User guide/User token

Пример строки запуска

sonar-scanner -Dsonar.host.url=http://sonar.company.com -Dsonar.login=SONAR_AUTH_TOKEN

Настройки плагина

  • sonar.bsl.languageserver.diagnosticLanguage - язык имен правил и текстов сообщений сработавших правил от BSL Language Server. По умолчанию - ru - русский;
  • sonar.bsl.languageserver.enabled - использование встроенного анализатора BSL Language Server Diagnostic provider при запуске анализа через sonar-scanner. По умолчанию - true - включен;
  • sonar.bsl.languageserver.reportPaths - путь к файлам отчетов во внутреннем формате BSL Language Server - json. По умолчанию - "" - не заполнено.

Интеграция с BSL Language Server

По умолчанию в качестве анализатора используется встроенный провайдер диагностик из BSL Language Server.

Выполнение анализа встроенным анализатором можно отключить, установив параметру sonar.bsl.languageserver.enabled значение false через командную строку или файл настроек.

sonar-scanner -Dsonar.bsl.languageserver.enabled=false

Отключение анализатора не отключает процесс парсинга файлов. Расчет метрик и подсветка синтаксиса будут работать вне зависимости от значения настройки.

Импорт результатов из внешнего файла

BSL Language Server может запускать анализ исходного кода и выдавать список обнаруженых диагностик в виде json-файла. Инструкция по запуску BSL Language Server в режиме анализа расположена на странице проекта.

Для импорта результата при запуске утилиты sonar-scanner нужно передать параметр sonar.bsl.languageserver.reportPaths через аргументы командной строки или через файл sonar-project.properties, в котором указать путь к файлу (или файлам, через запятую) с результатами анализа.

sonar-scanner -Dsonar.bsl.languageserver.reportPaths=./bsl-json.json
You can’t perform that action at this time.