SonarQube代码审计平台搭建

1 概述

SonarQube是一个开源平台,用于管理源代码得质量。SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

	(1) 不遵循代码标准
	SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
	(2) 潜在的缺陷
	SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
	(3) 糟糕的复杂度分布
	文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
	(4) 重复
	显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展示 源码中重复严重的地方。
	(5) 注释不足或者过多
	没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
	(6) 缺乏单元测试
	SonarQube可以很方便地统计并展示单元测试覆盖率。
	(7) 糟糕的设计
	通过SonarQube可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过SonarQube可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。

2 基础环境准备

工具地址:链接:https://pan.baidu.com/s/1vq9ogZjqjckw_EG7vi–Pg
提取码:zxl0

本文主要讲述如何在windows系统搭建sonarQube,所有的环境请按照笔者的要求搭建,以便大家可以成功搭建。

(1)Java环境1.8

(2)Maven环境

(3)mysql5.6—8.0,该版本之外的Mysql会报异常

(4)node.js

(5)SonarQube7.6

(6)Sonar-Scanner/Runner

(7)navicat可视化数据库工具

2.1 Java环境安装
在这里插入图片描述
双击安装JDK,细节这里就不说了,大家不会的可以百度一下,安装完JDK之后需要配置一下环境变量
SonarQube代码审计平台搭建_第1张图片
在这里插入图片描述
2.3 Mysql安装
安装mysql之前肯定有很多人会问我,为什么要说这些基础的东西,要知道,还是有很多帅气的娃因为一些基础得环境或者版本问题搞得

1. 将文件解压入到自定义的目录下【mysql如果安装不对得话,可以百度下对应版本得安装方式】
2. 配置my.ini,在根目录下创建文件my.ini,并在文件中输入以下代码
[mysqld]
basedir ="C:\mysql-6.3-winx64" --此处配置自己得mysql路径名
datadir ="C:\mysql-6.3-winx64\data" --此处配置自己得mysql路径名
port=3306
server_id =10
character-set-server=utf8

[client]
port=3306
default-character-set=utf8
[mysqld_safe]
timezone="CST"
[mysql]
default-character-set=utf8

3. 配置环境变量, 将mysql/bin加入到PATH中

4. 找到cmd.exe,以管理员身份运行(确保是管理员)

5. 首先将MySQL加入到Windows的服务中,输入命令:

	mysqld --install
	有时候没有卸载干净,会提示The service already exists!
	此时,以管理员身份运行cmd,
	-输入命令sc query mysql 查看名为mysql的服务
	-输入命令sc delete mysql,删除该mysql 
	-再执行mysqld --install 就能成功了

6. 开始初始化数据库,输入:
	-mysqld --initialize --console
  	-mysqld --initialize --user=root --console   (记住初使密码)

7.  输入:net start mysql,稍后你也可以用net stop mysql关闭MySQL服务。

8.  然后就可以进入MySQL了,输入:mysql -u root -p,此时会要求你输入密码

9. alter user user() identified by "123456";  改初使秘密

10. show databases ;展示数据库列表;

11. use mysql  使用数据库

12. show tables; 展示 表名

2.4 node.js安装

node.js也是必不可少得一环,如果没有node.js环境,无法对代码中得Css文件进行扫描。

安装方式因截图太多,这里参考https://www.runoob.com/nodejs/nodejs-install-setup.html
2.5 SonarQube7.6安装

--启动sonarQube服务-图1
--SonarQube启动后默认得账号和密码都是admin
--再次访问http://localhost:9000

SonarQube代码审计平台搭建_第2张图片
SonarQube代码审计平台搭建_第3张图片
2.6 Sonar-Scanner扫描器安装
Sonar-Scanner是一个利用SonarQube服务端分析代码得命令行工具,可以把它简单得理解为SonarQube得客户端。Sonar-Scanner分析完成后会将数据post到SonarQube得数据库,从而在sonarQube中进行展示,便于分析。

2.6.1 配置系统环境变量
新建变量名: SONAR_RUNNER_HOME
变量值: D:\sonar-scanner-3.3.0.1492-windows (安装包解压的路径)
Path :%SONAR_RUNNER_HOME%\bin
SonarQube代码审计平台搭建_第4张图片
SonarQube代码审计平台搭建_第5张图片
3 使用说明
3.1利用Sonar-scanner命令分析本地项目
1.进入E:\sonarqube-7.6\bin\windows-x86-64(你的sonarqube安装目录),
只要在项目工程目录下新建sonar-project.properties文件并配置如下图-1
2.点击StartSonar.bat启动sonar服务
3.进入项目所在得路径下执行sonar-scanner命令进行代码扫描-图2
4.运行最终结果显示EXECUTION SUCCESS即成功-图3
5.客户端查看代码扫描结果-图4
SonarQube代码审计平台搭建_第6张图片
SonarQube代码审计平台搭建_第7张图片
SonarQube代码审计平台搭建_第8张图片
SonarQube代码审计平台搭建_第9张图片
SonarQube代码审计平台搭建_第10张图片
SonarQube代码审计平台搭建_第11张图片
3.2已编译的maven项目,使用maven分析器插件来分析项目
SonarQube代码审计平台搭建_第12张图片


     sonar
     
          true
     
      
           jdbc:mysql://localhost:3306/sonar
           com.mysql.jdbc.Driver
           sonar
           sonar
            
           http://localhost:9000
      
  

之后在cmd下进入工程目录下,第一次运行:mvn clean install sonar:sonar
SonarQube代码审计平台搭建_第13张图片
后续每次运行: mvn clean verify sonar:sonar
SonarQube代码审计平台搭建_第14张图片
3.4对JS、CSS、HTML进行代码走查
SonarQube代码审计平台搭建_第15张图片

sonar-project.properties文件中的内容
sonar.projectKey=control
sonar.projectName=control
sonar.projectVersion=1.0
sonar.sources=src,WebContent
sonar.java.binaries=build\classes
sonar.sourceEncoding=UTF-8
之后在cmd下进入工程目录下运行:sonar-scanner

SonarQube代码审计平台搭建_第16张图片
5 SonarQube相关指标说明
5.1SonarQube指标脑图

SonarQube代码审计平台搭建_第17张图片
5.2代码质量阀

代码质量的统计,可以帮助我们判断项目是否可以投入生产环境

SonarQube代码审计平台搭建_第18张图片
可根据实际的项目需求配置质量阀(sonar的默认配置)
SonarQube代码审计平台搭建_第19张图片

你可能感兴趣的:(代码审计平台)