Баг - некорректно заполняется sonar-project.properties, если включен фильтр по подсистемам в плагине 1.19


#1

Мы используем SonarQube 1C (BSL) plugin ver. 1.19 и хотим на проектах анализировать только объекты входящие в определенные подсистемы. Для этого мы заводим подсистему в конфигурации 1С, включаем туда, интересующие нас объекты, создаем файл sonar.subsystem.json и формируем через команду файл sonar-project.properties

vanessa-sonar configure -k myproject -n myproject --src D:\repository\myproject\src\cf --group --subsystemsConfPath D:\repository\myproject\sonar.subsystem.json

Но у нас возникает проблема. Список объектов подсистемы, на которой наложен фильтр получается всегда пустым. Покопавшись в исходниках файла КомандаСформироватьКонфигурационныйФайл.os модуля vanessa-sonar я нашел причину сего действия. Процедура УдалитьДублирующиесяОбъектыИзПодсистем() удаляет дубли не только из фильтрованных подсистем, но и вообще из всех подсистем. Для нас это неприемлимо, т.к. фильтрованная подсистема может содержать объект из любой типовой подсистемы и нам нужно его также анализировать, если мы его дописываем.

Впрочем этот баг легко исправлятся. Я сделал дописку в процедуре УдалитьДублирующиесяОбъектыИзПодсистем(), где заменил все вхождения переменной СписокПодсистем на переменную ФильтрПоПодсистемам.

Вопрос стоит ли ожидать аналогичный фикс в вашем плагине сонара?

Вот содержание кривого файла sonar-project.properties, который получается после запуска команды:

# must be unique in a given SonarQube instance

sonar.projectKey=pglz_erp_sources1c

# this is the name displayed in the SonarQube UI

sonar.projectName=pglz_erp_sources1c

# Organization key for the analyzed project

# sonar.organization=

# sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace '/' by '/' on Windows.

# Since SonarQube 4.2, this property is optional if sonar.modules is set.

# the sonar-project.properties file.

# sonar.sources=./src/cf

sonar.inclusions=**/*.bsl,**/*.os,**/*.xml

sonar.exclusions=**/*.html,**/Ext/Help.xml,**/Ext/Template.xml,**/Templates/**/*.xml,**/Ext/Predefined.xml,**/Ext/Picture.xml,**/Ext/Flowchart.xml,ExternalDataSources/**/Content.xml,ExchangePlans/**/Content.xml

sonar.lang.patterns.xml=**/*.xsd,**/*.xsl

# Пропускать файлы на полной поддержке поставщика, со статусом "Не редактируется"

# sonar.bsl.skipVendorSupportedObjects=true

# Файлы замечаний от внешних инструментов (в формате json)- 1C:АПК, 1C:EDT и т.п.

# sonar.bsl.acc.externalRulesPath=./edt-validate.json,./acc.json

# Файл замечаний от внешних инструментов (в формате xml) от 1C:АПК - устарел

# sonar.bsl.acc.resultsPath=./acc.xml

# Encoding of the source code. Default is default system encoding

sonar.sourceEncoding=UTF-8

sonar.java.source=8

# sonar.host.url=http://localhost:9000

# или для облачных клиентов

# sonar.host.url=https://sonar.silverbulleters.org/projects

# sonar.login=ВашТокенИзНастроекБезопасностиПользователя

# адрес страницы генерации токена - например, http://localhost:9000/account/security/

# или для облачных клиентов https://sonar.silverbulleters.org/account/security/

# THIS file created automatically - DO NOT EDIT IT

sonar.modules=bit_erp_NovyeObekty,bit_erp_IzmenennyeObekty

# Subsystem filter

bit_erp_IzmenennyeObekty.sonar.projectBaseDir=src/cf
bit_erp_IzmenennyeObekty.sonar.projectName=\u0431\u0438\u0442_erp_\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0435\u041e\u0431\u044a\u0435\u043a\u0442\u044b
bit_erp_IzmenennyeObekty.sonar.sources= [ОШИБКА! ЗДЕСЬ ДОЛЖЕН БЫТЬ СПИСОК ОБЪЕКТОВ ПОДСИСТЕМЫ bit_erp_IzmenennyeObekty]

#2

Обновиться до версии 1.20 попробуйте.