Я создал многомодульный проект с одним 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 — это то, что мы обычно используем для проектов, но не тот, над которым я работаю. У меня есть разные профили, настроенные для разных языков через пользовательский интерфейс, но если я не могу получить анализ, чтобы увидеть правильный язык, это не очень мне помогает.
Кто-нибудь знает, как я могу форсировать язык модуля постфактум?