如何对C ++工作进行声纳分析?

时间:2013-06-06 13:47:25

标签: sonarqube

我正在尝试使用声纳对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工具,我可以发现违规行为。为什么违规行为不会出现在声纳的页面上? 还有其他我应该配置的,我做错了吗?

3 个答案:

答案 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 ++'