代码质量管理工具SonarQube

简介

  • 代码质量、安全扫描和分析的平台
  • 多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、单元测试覆盖率等
  • 支持近30+种开发语言:包含主流开发语言java/python/c#/javascript/go/c++等
  • 能够与开发工具(idea,eclipse)、CI/CD平台(jenkins)、版本控制管理工具(gitlab,github)等完美集成
  • 能够帮助开发人员写出更干净、高质量、更安全的代码

官网地址

官网

https://www.sonarqube.org

docker官网

https://hub.docker.com/_/sonarqube

sonarscanner官网

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ 

github官网 

https://github.com/newtmitch/docker-sonar-scanner 

docker官网 

https://hub.docker.com/r/newtmitch/sonar-scanner/

PostgreSQL官网

SonarQube 7.9以后的版本已经放弃了MySQL 。国内下载速度比较理想。

https://www.postgresql.org/ 

下载地址: 

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 

sonarqube版本

  • 社区版(Community)
  • 企业版(Enterprise)
  • 数据中心版(Data Center)
  • 开发版(Developer)

SonarQube也是一个C/S架构的服务。根据其官网所述,包含以下架构:

SonarQube服务端:

  • Web服务器
  • 搜索引擎-Elasticsearch to back searches from the UI
  • 后台计算服务-连接数据库

后台数据库:

  • SonarQube实例的配置信息,如安全、插件等
  • 项目、视图的质量快照数据

SonarQube Plugin

  • 安装在服务端的插件,例如语言包、SCM、认证、治理等等

sonarqube目录

1.bin 用来启动 SonarQube 服务,这里已经提供好了不同系统启动 | 停止脚本了,目前提供了 linux-x86-32、linux-x86-64、macosx-universal-64、windows-x86-32、windows-x86- 64 

2.conf 用来存放配置文件,若需要修改配置,修改 sonar.properties 文件即可。 

3.data 用来存放数据,SonarQube默认使用 h2 数据库存储,同时支持其他如Orace、Mysql、Postgresql数据库存储。 

4.extensions 用来存放插件 jar 包,以后我们需要安装插件就放在这里。 

5.lib 用来存放各种所依赖的 jar 包,包括上边各数据库驱动包 (默认已提供一个版本,如果版本不 匹配,则在这里手动更新下)。 

6.logs 用来存放各日志信息 

7.web 用来提供 SonarQube web 网页服务。 

docker 安装SonarQube

1. 拉取基础镜像

docker pull sonarqube:7.9.4-community

2. 创建并运行基础镜像

docker run -itd --name=sonarqube -p 9000:9000 sonarqube:7.9.4-community 

3.查看日志sonar是否启动成功

docker logs -f sonarqube 

sonarqube 安装成功了,可以打开浏览器查看页面 http://192.168.8.128:9000

 sonar默认登陆用户密码为 admin/admin

中文插件

方式一:

 方式二

下载sonar-l10n-zh-plugin-1.29.jar

https://github.com/SonarQubeCommunity/sonar-l10n-zh 

下载对应版本的汉化包

将下载的对应的jar包放入到extensions目录中

docker安装可以将/opt/sonarqube/{extensions,logs,data,conf} 四个目录挂载出来

 安装sonarscanner

可以脱离开发环境进行测试。sonarscanner可以帮助开发人员将代码上传远程sonarqube服务器上。

SonarQube在服务器端不支持32位系统。Sonarqube-scanner支持32位系统。最新版本已经无法下载32位操作系统的版本

官方文档

 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ 

 下载对应版本的SonarScanner

 环境变量       

配置环境变量 path中添加D:\sonarqube\sonar-scanner-4.2.0.1873-windows\bin 

在cmd检查安装是否成功 

sonar-scanner -v 

配置sonar-scanner

在sonar-scanner.properties中配置对应的sonar.host.url 、sonar.sourceEncoding 

D:\sonarqube\sonar-scanner-4.2.0.1873-windows\conf\sonar-scanner.properties 

文件内容调整如下: 

sonar.host.url=http://localhost:9000 

#----- Default source code encoding 

sonar.sourceEncoding=UTF-8 

编写sonar-project.properties

#项目的key 唯一不重复即可 

sonar.projectKey=sonarScannerTest 

#项目的名字 

sonar.projectName=sonarScannerTest 

#项目的版本 

sonar.version=1.0 

#需要分析的源码的目录,多个目录用英文逗号隔开 

sonar.sources=src 

#sonarQube扫描的对象是.class而不是.java文件 

sonar.java.binaries=target/classes 

#解析的开发语言,如果需要解析其他语言,需要下载对应的插件 

sonar.language=java 

#编码格式 

sonar.sourceEncoding=UTF-8 

扫描项目

首先执行mvn打包命名 

mvn clean package 

上传代码 

sonar-scanner 

查看sonarqube控制台,项目已成功扫描

猜你喜欢

转载自blog.csdn.net/xiaozhang_man/article/details/124551127