Мы используем 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]