16

我正在尝试使用声纳对 C++ 代码进行静态分析。我已经安装了声纳并配置了我的项目(它出现在本地主机声纳页面上,但我没有看到相应代码的任何代码违规)。我安装了 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 工具,我会发现违规行为。为什么违规行为没有出现在声纳页面上?还有什么我应该配置的,我做错了吗?

4

3 回答 3

6

我能够通过在sonnar-runner之前独立运行cppcheck工具来使其工作,并将生成的xml报告放在sonnar-runner的bin文件夹中。

在 sonar-project.properties 文件中,我直接指定了 xml: sonar.cxx.cppcheck.reportPath=cppcheck-result-1.xml

于 2013-06-10T13:25:53.027 回答
2

我有一个类似的问题,这是由 'sonar.language=cs' 之后的空格引起的。确保在“cxx”之后立即有一个换行符。希望它有效。

于 2013-06-19T13:13:35.550 回答
-3

Sonar C++ Community 插件的语言键不是“c++”而是“cxx”。请参阅http://docs.codehaus.org/pages/viewpage.action?pageId=185073817

所以你必须用 'sonar.language=cxx' 替换 'sonar.language=c++'

于 2013-06-09T09:24:07.433 回答