微服务*项目(46) -SonarQube静态代码测试

文章目录

1. 概述

Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。

支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。

Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

1.不遵循代码标准

  • sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。

2.潜在的缺陷

  • sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。

3.糟糕的复杂度分布

  • 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。

4.重复

  • 显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。

5.注释不足或者过多

  • 没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

6.缺乏单元测试

  • sonar可以很方便地统计并展示单元测试覆盖率。

7.糟糕的设计

  • 通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合

2. 安装部署

1.下载镜像

docker pull sonarqube:7.6-community

2.运行镜像

docker run -d -p 9000:9000 --name sonarqube sonarqube:7.6-community

3.创建和复制文件

cd /opt/sonarqube
docker cp sonarqube:/opt/sonarqube/conf .
docker cp sonarqube:/opt/sonarqube/extensions .

chmod -R 777 extensions
mkdir logs
chmod -R 777 logs
mkdir data
chmod -R 777 data
 

4.创建启动命令start.sh

vim start.sh
GITLAB_DIR=/opt/sonarqube
docker stop sonarqube
docker rm sonarqube
docker run -d --name sonarqube \
    -p 9000:9000 \
    -v ${GITLAB_DIR}/conf:/opt/sonarqube/conf \
    -v ${GITLAB_DIR}/data:/opt/sonarqube/data \
    -v ${GITLAB_DIR}/logs:/opt/sonarqube/logs \
    -v ${GITLAB_DIR}/extensions:/opt/sonarqube/extensions \
    -e SONARQUBE_JDBC_USERNAME=root \
    -e SONARQUBE_JDBC_PASSWORD=1q2w3e4r \
    -e SONARQUBE_JDBC_URL="jdbc:mysql://192.168.28.131:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \
    sonarqube:7.6-community
SONARQUBE_JDBC_USERNAME 数据库用户名
SONARQUBE_JDBC_PASSWORD 数据库密码
SONARQUBE_JDBC_URL 数据库url

5.创建数据库

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci

6.启动

sh start.sh

7.登录

http://192.168.28.134:9000

默认用户名密码:admin/admin

8.汉化

  • 页面上找到Administration > Marketplace,在搜索框中输入chinese
  • 出现一个Chinese Pack,点击右侧的install按钮。
  • 安装成功后,会提示重启 SonarQube 服务器。
    微服务*项目(46) -SonarQube静态代码测试

3. 静态代码测试

mvn clean compile sonar:sonar -Dsonar.host.url=http://192.168.28.134:9000
  • sonar:sonar 执行sonar检查
  • -Dsonar.host.url 指定sonarQube的地址
上一篇:使用Docker搭建Sonarqube代码扫描环境


下一篇:CentOS安装SonarQube代码扫描工具