Как заставить сканер SonarQube анализировать код на C и C ++? - PullRequest
0 голосов
/ 06 июня 2018

Я использую общедоступную версию SonarQube 7.1 на RHEL 7.x.Когда я запускаю sonar-scanner -X, я вижу вывод на бэкэнде так:

hello.py indexed with language 'py'
hello.java indexed with language 'java'
hello.cpp indexed with language 'null'
hello.c indexed with language 'null'

Я ожидал увидеть «проиндексированный с языком cpp» и «проиндексированный с языком c».

Когда я захожу в веб-интерфейс, вижу hello.py и hello.java в каталоге проекта.Но я не вижу ссылки на код .cpp или .c.Я ожидаю увидеть файлы .c и .cpp в веб-интерфейсе.Это никогда не работало, поэтому позвольте мне рассказать о том, что я сделал.

Чтобы установить плагин для кода .cpp и .c, я скачал файл .zip с наибольшим номером версии.Сначала я пытался найти его в локальной установке SonarQube, но URL "http://localhost:9000/static/cpp/build-wrapper-linux-x86.zip" (и его производные для моего собственного развертывания) не работал для меня. Как примечание, мне любопытно, если есть альтернативные путии почему этот путь приведет к сообщениям 404 или «Невозможно отобразить страницу» в моем веб-браузере.

После того, как я распаковал плагин для C ++ и C, я запустил (из командной строки): build-wrapper-linux-x86-64 - out-dir bw_output make

Я также запустил (из командной строки): build-wrapper-linux-x86-64 --out-dir bw_output make sonar-scanner

Оба работали без ошибок. Похоже, что SonarQube не анализирует исходный код .c или .cpp. Я основываюсь на этом на двух вещах: во-первых, на отсутствии вывода в веб-интерфейсе, когда другие файлы анализируются в том же каталогеВо-вторых, вывод на бэкэнде, ссылающийся на язык 'null' для файлов .c и .cpp. Что я делаю не так при настройке SonarQube для анализа кода C и C ++?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Альтернативой для SonarCFamily является sonar-cxx плагин

, но, насколько я знаю, он может анализировать только с помощью других статических / динамических инструментов.Я использовал с Valgrind, Dr.Memory, Bullseye.

0 голосов
/ 06 июня 2018

Вы говорите, что скачали SonarCFamily и взорвали банку.Это было не то, что вы хотели сделать.Вместо этого вы должны были установить неповрежденную банку в $SONARQUBE_HOME/extensions/plugins.Тогда URL-адрес для загрузки сработал бы для вас, и ваш анализ распознал бы и предоставил правила для ваших файлов C.

Однако , SonarCFamily не является одним избесплатные анализаторы кода.Он входит в состав Developer Edition ($), для которого требуется платная лицензия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...