Как сделать анализ сонара для работы на C++?
Я пытаюсь использовать сонар для статического анализа кода С++. Я установил сонар и сконфигурировал свой проект (он появляется на странице сонара localhost, но я не вижу нарушения кода для соответствующего кода). У меня установлен плагин сообщества С++.
Мои параметры sonar-project.properties выглядят следующим образом:
# required metadata
sonar.projectKey=DiceInvaders
sonar.projectName=Dice Invaders
sonar.projectVersion=1.0
# optional description
sonar.projectDescription=DiceInvaders by CS
# path to source directories (required)
sonar.sources=D:\\DiceInvaders\\Code
# path to test source directories (optional)
#sonar.tests=D:\\DiceInvaders\\Code
# path to project binaries (optional), for example directory of Java bytecode
#sonar.binaries=binDir
# optional comma-separated list of paths to libraries. Only path to JAR file is supported.
#sonar.libraries=path/to/library/*.jar,path/to/specific/library/myLibrary.jar,parent/*/*.jar
# The value of the property must be the key of the language.
sonar.language=c++
sonar.exclusions=**/*.ipch, **/**/*.rc
sonar.cxx.cppcheck.path = "C:\Program Files (x86)\Cppcheck\cppcheck.exe"
sonar.cxx.cppcheck.reportPath="D:\DiceInvaders\Code\cppcheck-reports\cppcheck.xml".
# Additional parameters
#sonar.my.property=value
Я не получаю никаких ошибок при запуске sonar-runner из cmd.
Если я запускаю вручную инструмент cppcheck.exe в моем проекте, я могу найти нарушения. Почему нарушители не появляются на странице сонара?
Есть ли что-то еще, что я должен настроить, я делаю что-то неправильно?
Ответы
Ответ 1
Мне удалось заставить его работать, запустив инструмент cppcheck независимо от sonnar-runner и разместив сгенерированный отчет xml в папке bin sonnar-runner.
В файле sonar-project.properties я прямо указал xml:
sonar.cxx.cppcheck.reportPath = cppcheck-result-1.xml
Ответ 2
У меня была аналогичная проблема, которая была вызвана пробелом после "sonar.language = cs". Убедитесь, что после "cxx" произошла строка. Надеюсь, что это сработает.
Ответ 3
Языковой ключ плагина сообщества Sonar С++ не является "С++", а "cxx". См. http://docs.codehaus.org/pages/viewpage.action?pageId=185073817.
Итак, вы должны заменить "sonar.language = С++" на "sonar.language = cxx"