用SonarQube检查C语言代码规范

发表于:2020-6-28 14:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:顾翔    来源:51Testing软件测试网原创

   用SonarQube进行JAVA语言代码规范的文章在网上不少,但是介绍非JAVA语言(比如C语言)的不多,在这里我们以C语言给大家介绍(Windows环境)。
  1 下载C语言代码插件到SonarQube主目录的%SonarQube_HOME%\extensions\plugins目录下。我这里选用的是sonar-c-plugin-1.3.1.1807.jar。
  2 打开网页,输入http://127.0.0.1:9000,登录SonarQube,在系统-配置处点击重启服务,重新启动SonarQube。不要着急,系统并没有重启。在任务管理器中找到java进程,结束进程,然后在%SonarQube_HOME%\bin\windows-x86-64下运行StartSonar.bat重新启动SonarQube。
  3 重新登录SonarQube后,在代码规则处会发现C (Community)。
  4 进入“质量配置”,在左上角选择“创建”,输入名称,语言选择C (Community)。
  输入完毕会发现产生刚刚建立的质量配置。
  5 点击配置,选择“设为默认”,然后点击“激活更多规则”。
  6 点击右上方的“批量修改->激活C语言规则”,选择“应用”。
  但是在这里我建议公司或者团队小组组织在一起,仔细评估每一条规则,如果这条规则适合本公司再确认,否则可以不确认(即使确认了,也可以选择挂起,取消确认)。
  7 点击屏幕右上角的+号,创建新项目。
  8 如下图所示输入“项目标识”与“显示名”(一般二者一致)
  9 点击设置,可以设置新的令牌或者选择以前建立过的令牌。我在这里选用老的令牌
  10 选择语言和操作系统,当我们选择非Java语言,系统会让我们下载“平台的扫描器”,即sonarscean,下载完毕,把其bin目录添加到PATH中。比如我这里是:C:\sonarscean-8.1.0\bin。
  11 拷贝“在你的电脑上e执行SonarQube扫描”下面的命令,注意保存。
  12 进入项目,会发现新建立的项目。
  13 进入被测项目,输入第11步拷贝的命令。(如果C语言不在本目录下,比如在src下,请把-D"sonar.sources=."改为-D"sonar.sources=./src")
  sonar-scanner.bat -D"sonar.projectKey=process" -D"sonar.sources=." -D"sonar.host.url=http://127.0.0.1:9000" -D"sonar.login=6cdf6f3176211d67dbf469712168c005c48f8c4d"。
  14 运行完毕,进入SonarQube的项目栏即可看见相应的检测结果。
  点击进去即可看见详细信息。注意:由于没有运行,所以在这里不能够检测出覆盖率,只能进行静态代码扫描。
  14 如果项目比较固定,可以打开%SONARSCEAN_HOME%\conf\sonar-scanner.properties(注意这里是%SONARSCEAN_HOME%,而不是%SONARQUBE_HOME%)。
   sonar.host.url=http://127.0.0.1:9000
  sonar.sourceEncoding=UTF-8
  sonar.projectKey=process
  sonar.projectName=process
  sonar.projectVersion=1.0
  sonar.sources=.\
  sonar.login=6cdf6f3176211d67dbf469712168c005c48f8c4d
  然后在项目文件中输入sonar-scanner即可运行扫描功能。

      版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号