Сопоставление правил EDT и плагина
При вызове сканера через параметр sonar.bsl.edt.rulesPaths можно передать дополнительные правила. Утилита edt-ripper для неизвестных ей правил формирует новый код EDT, при этом в списке правил плагина я никакого внутреннего кода не вижу. Означает ли это что плагин не обращает внимание на это поле и просто создаст новые правила, а после их появлении их поддержки в плагине они будут использовать существующие идентификаторы, которые уже используются совсем другими правилами?
sonar.bsl.edt.rulesPaths это параметр уровня сервера, а не проекта. Можно из edt-ripper выгрузить актуальные описания правил и подложить их серверу. При перезапуске сервера он пересоздаст правила по описаниям из файлов. Либо же можно пользоваться штатным описанием правил, зашитым в плагин. Срабатывания замечаний по неизвестным правилам будут созданы как external issues, остальные смапятся на существующие.
Учитывая, что на текущий момент в edt-ripper правил больше, я правильно понимаю что этот проект является источником правил для плагина и можно смело брать файл правил из него и подставлять в sonar.bsl.edt.rulesPaths?
Да, все верно. Мы периодически обновляем правила, вшитые в плагин. Но релиза давно не было.
Остается непонятным, есть ли возможность обновить состав правил без деинсталляции и повторной инсталляции плагина. Я добавил в sonar.properties настройку sonar.bsl.edt.rulesPaths=<путь к файлу правил> и ожидаю что при каждом перезапуске сервера их состав будет обновляться, но этого не происходит. Судя по всему правила записываются в БД и обновляются только после апгрейда плагина
@theshadowco подскажи тут, помню, что там сложности были с этим
Да, все верно. Мы периодически обновляем правила, вшитые в плагин. Но релиза давно не было.
В свое время я делал доработку одного правила для BSLLS. Есть ли инструментарий для выпуска плагина для Sonar с учетом этого изменения? UPD. пока удалось сделать с помощью прямого копирования скомпилированного класса в jar
Собрать бсл лс, установить его в mavenLocal, изменить требуемую версию бсл лс в build.gradle.kts плагина, собрать плагин, залить на сервер.
Остается непонятным, есть ли возможность обновить состав правил без деинсталляции и повторной инсталляции плагина. Я добавил в sonar.properties настройку sonar.bsl.edt.rulesPaths=<путь к файлу правил> и ожидаю что при каждом перезапуске сервера их состав будет обновляться, но этого не происходит. Судя по всему правила записываются в БД и обновляются только после апгрейда плагина
нормального нет, только установкой новой версии плагина либо удалить\поставить