如何使用SonarQube来优化你的代码

举报
Hermit_Rabbit 发表于 2022/10/21 22:24:34 2022/10/21
【摘要】 0. 简介最近一直苦于自己写的代码的开发的质量不高,急需要一种可以适用于C++代码的代码质量检测工具,这里发现SonarQube可以很好的适用于Ubuntu环境,并能够很好的与Gitlab兼容,从而保证代码的敏捷式开发。 1. SonarQube安装ubuntu中安装jdk详细过程可参考:https://blog.csdn.net/qq_26709459/article/details/8...

0. 简介

最近一直苦于自己写的代码的开发的质量不高,急需要一种可以适用于C++代码的代码质量检测工具,这里发现SonarQube可以很好的适用于Ubuntu环境,并能够很好的与Gitlab兼容,从而保证代码的敏捷式开发。

1. SonarQube安装

  1. ubuntu中安装jdk
    详细过程可参考:https://blog.csdn.net/qq_26709459/article/details/80466239

  2. ubuntu中安装mysql
    详细过程可参考:https://blog.csdn.net/qq_26709459/article/details/79115723

    安装成功之后,新建数据库"sonarqube"(数据库名称也可自己定义)。

    # 创建用户 sonarqube
    sudo adduser sonarqube
    # 切换到sonarqube用户
    su sonarqube
    
  3. 下载并安装sonarQube
    注:建议运行内存在2G或2G已上。

    • 下载sonarQube
      下载地址:https://www.sonarqube.org/downloads/
      在这里插入图片描述

    • 这里我们需要选择Community版本下载、解压并安装

      sudo unzip sonarqube-7.3.zip
      

      在这里插入图片描述

    • 配置SonarQube
      编辑$SONAR_HOME/conf/sonar.properties文件

      sonar.jdbc.username=**your_name**
      
      sonar.jdbc.password=**your_password**
      
      sonar.jdbc.url=jdbc:mysql://localhost:3306/your_database_name?# 后续不用更改
      
      sonar.web.javaOpts=-Xmx1024m -Xms512m -XX:+HeapDumpOnOutOfMemoryError # 如果你想分配sonar更多的内存
      
      sonar.path.data=**/var/sonarqube/6_5_7/data  #数据路径,保证sonarquebe可以读写
      
      sonar.path.temp=**/var/sonarqube/6_5_7/temp #临时文件路径,保证sonarquebe可以读写
      
      sonar.web.context=/ #路径
      
      sonar.web.port=9000 #端口
      
    • 启动
      进入"bin"目录查看文件:

      ./$SONAR_HOME/bin/linux-x86-64/bin/sonar.sh start
      

      在这里插入图片描述

    • 在浏览器中输入http://your_server_address:9000/,查看sonarqube是否能够正常打开。然后在configure->market中搜索chinese pack,点击安装。

      默认账号和密码:
      账号:admin
      密码:admin
      在这里插入图片描述

2. C++插件安装

  1. 安装C++插件,由于sonar自带的CFamily收费,但是Github上有大神公开了免费的版本sonar-cxx

  2. 将下载好的插件移动到sonar插件目录,然后重启服务,并进入localhost:9000/updatecenter查看。
    bash mv sonar-cxx-plugin* /etc/sonarqube-5.6.7/extensions/plugins
    在这里插入图片描述

  3. 创建Quality Profiles
    在sonarqube web页面中,进入Quality Profiles,创建Quality Profiles,选择语言为“c++”
    在这里插入图片描述

  4. 添加现有规则
    进入Rules页面,左侧菜单选中“Repository”,可以看到sonar-cxx插件自带(sonar自带?)有多种代码检测工具,包括最强大的PC-lint
    在这里插入图片描述

  5. 点击选中“c++”相关的分析工具,在整个网页右上角点击“Bulk Change”,将选中的规则应用至上一步创建的Quality Profile(cpp-test)中。
    在这里插入图片描述

  6. 选择刚刚添加的规则,点击应用,等待一下即可。
    激活完毕后,可以在这里看到规则数量。
    在这里插入图片描述

3. 本地测试

  1. 安装Cppcheck和sonar-scanner
wget https://github.com/danmar/cppcheck/archive/1.89.zip
wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
  1. 下载完后,解压出来,并重新命名sonar_scanner和配置sonar.properties
#重命名为sonar-scanner
mv sonar-scanner-cli-3.0.3.778-linux sonar-scanner
# 修改sonar_scanner.properties
[sonar@bogon ~]$ cd sonar-scanner/conf/
[sonar@bogon conf]$ ls
sonar-scanner.properties
[sonar@bogon conf]$vim sonar-scanner.properties
#把注释去掉就行
sonar.host.url=http://localhost:9000
sonar.sourceEncoding=UTF-8
  1. 将添加sonar、cppcheck、sonar-scanner添加到环境变量中
vim /etc/profile
 
#添加一下代码(根据自己路径修改)
export SONAR_HOME=/home/sonar/sonarqube-7.1
export SONAR_SCANNER_HOME=/home/sonar/sonar-scanner
export CPPCHECK_HOME=/home/sonar/cppcheck-1.88
export PATH=$PATH:$SONAR_HOME:$SONAR_SCANNER_HOME/bin:$CPPCHECK_HOME
 
source /etc/profile  
  1. 登录后台,并创建一个令牌
    在这里插入图片描述
  2. 测试例子,在扫描配置项里面做如下配置

…详情请参照古月居

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。