用于C项目的sonarqube扫描程序属性文件

时间:2018-05-23 11:30:06

标签: sonarqube

我正在使用声纳qube来分析C文件。分析后,我无法看到C / C ++列出的完整气味。例如,Divide by Zero错误未在代码气味中列出。

我使用选项sonar.language=c为C语言重新配置了我的声纳扫描仪设置,并使用了sonar.c.include directories等C语言专用标签。我收到了C文件的Lexer错误。

任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

您可以使用SonarOpenCommunity/sonar-cxx免费进行分析。但是,您需要在开发机中使用诸如cppcheck之类的外部工具,以XML格式在文件中生成其结果。

这是我能够做到的方式:

  1. 安装sonar-c-plugin。对于我的sonarqube 5.6.1版本,我来自https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-0.9.8/sonar-c-plugin-0.9.8.jar
  2. 在“管理” /“常规设置” /“ C(社区)/ Cppcheck”报告中的sonarqube服务器中配置sonar.c.cppcheck.reportPath属性。我将其设置为build/cppcheck.xml
  3. 在开发机中安装cppcheck
  4. 在您的项目上运行cppcheck并将结果保存到build / cppcheck.xml
  5. 在项目的根目录创建一个sonar-project.properties文件,请参见下面的示例
  6. 安装并运行sonar-scanner

这是我的sonar-project.properties文件:

sonar.host.url=http://mycompany.com:9000

sonar.projectKey=myprojectShortName
sonar.projectName=myprojectLongname
sonar.projectVersion=0.1

# Your relative path to source folder may be different 
sonar.sources=src/main/c

sonar.language=c

# The build-wrapper output dir
sonar.cfamily.build-wrapper-output=bw-outputs

# Encoding of the source files
sonar.sourceEncoding=UTF-8

答案 1 :(得分:0)

SonarQube仅在付费的Developer Edition或SonarSource的更昂贵版本中支持 C a C ++。如果您运行的是SonarQube社区版,这可能就是为什么出现这些lexer错误或无法扫描C文件的原因。