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

简介: 微服务轮子项目(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 服务器。

3. 静态代码测试

mvn clean compile sonar:sonar -Dsonar.host.url=http://192.168.28.134:9000
  • sonar:sonar 执行sonar检查
  • -Dsonar.host.url 指定sonarQube的地址
目录
相关文章
|
4月前
|
Dubbo Java 应用服务中间件
微服务框架(十)Maven Archetype制作Dubbo项目原型
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Maven Archetype的制作及使用,使用archetype插件制作Dubbo项目原型
|
4月前
|
监控 安全 测试技术
从开发到测试再到发布,全方位解析项目上线的完美路程!
从开发到测试再到发布,全方位解析项目上线的完美路程!
126 0
|
4月前
|
存储 Rust 测试技术
【一起学Rust · 项目实战】命令行IO项目minigrep——测试驱动开发完善功能
【一起学Rust · 项目实战】命令行IO项目minigrep——测试驱动开发完善功能
95 0
|
2月前
|
微服务
jeecg微服务项目调用接口报错Token验证失效的解决方法
jeecg微服务项目调用接口报错Token验证失效的解决方法
31 0
|
2月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
169 0
|
20天前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
15 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
2月前
|
Java PHP 数据库
在护卫神上部署javaWeb项目,已经测试通过
在护卫神上部署javaWeb项目,已经测试通过
12 0
|
2月前
|
Cloud Native Dubbo Java
如何确定微服务项目中Spring Boot、Spring Cloud、Spring Cloud Alibaba三者之间的版本
如何确定微服务项目中Spring Boot、Spring Cloud、Spring Cloud Alibaba三者之间的版本
31 0
|
2月前
|
XML Java 数据格式
springboot 微服务项目如何集成 html 页面
springboot 微服务项目如何集成 html 页面
29 0
|
4月前
|
SQL 安全 测试技术
项目迁移到云服务器,如何做迁移测试?
项目迁移到云服务器,如何做迁移测试?

热门文章

最新文章