我正在尝试使用声纳对c ++代码进行静态分析。我已经安装了声纳并配置了我的项目(它出现在localhost声纳页面上,但我没有看到相应代码的任何代码违规)。我安装了C ++社区插件。
我的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
从cmd运行sonar-runner时,我没有收到任何错误。
如果我在我的项目上手动运行cppcheck.exe工具,我可以发现违规行为。为什么违规行为不会出现在声纳的页面上? 还有其他我应该配置的,我做错了吗?
答案 0 :(得分:5)
我能够通过在sonnar-runner之前独立运行cppcheck工具,并将生成的xml报告放在sonnar-runner的bin文件夹中来使其工作。
在sonar-project.properties文件中,我直接指定了xml: sonar.cxx.cppcheck.reportPath = cppcheck-result-1.xml
答案 1 :(得分:2)
我有一个类似的问题,这是由'sonar.language = cs'之后的空格引起的。确保'cxx'后面有一个换行符。希望它有效。
答案 2 :(得分:-2)
Sonar C ++社区插件的语言键不是'c ++'而是'cxx'。请参阅http://docs.codehaus.org/pages/viewpage.action?pageId=185073817。
所以你必须用'sonar.language = cxx'替换'sonar.language = c ++'