sonarqube 4.5 ошибочно идентифицировал модуль cpp как c - как я могу это исправить

Я создал многомодульный проект с одним sonar-project.properties. Большая часть проекта написана на C, но один модуль — на C++. Я оставил свойство sonar.language пустым и запустил sonar-runner с анализом.

Проект и модули были созданы в базе данных, и все выглядело нормально, но когда я сделал предварительный просмотр того же кода, у меня появилось большое количество новых проблем в проекте C++.

При ближайшем рассмотрении я обнаружил, что модуль в sonarqube был неправильным — он состоял только из файлов заголовков (.h), и большинство проблем было связано с использованием комментариев в стиле C. Похоже, что модуль был идентифицирован как модуль C, поэтому все файлы .cpp были проигнорированы. Однако в предварительном просмотре язык был определен правильно, и в файлах .cpp были обнаружены проблемы, которые явно не были известны sonarqube.

Я не могу найти какое-либо место в пользовательском интерфейсе, чтобы изменить язык модуля, и я не могу найти способ заставить его работать постфактум в моем sonar-project.profiles. Во-первых, sonar.language явно устарел, а во-вторых, использование module.sonar.language=cpp вызывало ошибку:

Причина: sonar.profile имеет значение DEFAULT_C, но не соответствует ни одному профилю ни для одного языка. Пожалуйста, проверьте вашу конфигурацию.

DEFAULT_C — это то, что мы обычно используем для проектов, но не тот, над которым я работаю. У меня есть разные профили, настроенные для разных языков через пользовательский интерфейс, но если я не могу получить анализ, чтобы увидеть правильный язык, это не очень мне помогает.

Кто-нибудь знает, как я могу форсировать язык модуля постфактум?


person fluffymcdeath    schedule 14.05.2015    source источник


Ответы (1)


Хм. Я думал просто удалить это, но если бы я нашел ответ на stackoverflow, это немного облегчило бы мою боль.

Грубая сила работает. Просто установите нужный язык и профиль для модуля и игнорируйте жалобы на то, что такие вещи устарели. Выбор языка не приведет к принудительному выбору правильного профиля, даже если вы настроили явный профиль для языка в пользовательском интерфейсе, поэтому просто укажите его в файле sonar-project.properties. В моем случае: module.sonar.language=cpp module.sonar.profile=MY_CPP_PROFILE

Добавьте к этому sonar-runner, и он приведёт бэкенд в форму.

person fluffymcdeath    schedule 15.05.2015