SonarQube代码质量检查工具攻略大全

前言
随便写写,大家也就随便看看,2020年,争取拿个乒乓球小区冠军。

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 基础环境准备

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

(1)Java环境1.8

(2)Maven环境

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

(4)node.js

(5)SonarQube7.6

(6)Sonar-Scanner/Runner

(7)SVN代码管理仓库

(8)Jenkins平台

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

(10)Jenkins Plugins笔者已经下载好了,主要是因为防止很多人插件下载失败,所有的安装文件都放在了网盘中,可自取

2.1 Java环境安装

jdk1.8_64位

双击安装JDK,细节这里就不说了,大家不会的可以百度一下,安装完JDK之后需要配置一下环境变量

SonarQube代码质量检查工具攻略大全_第1张图片
PATHl路径配置

2.2 Maven安装

同样将maven的安装包解压到任意一个磁盘中,同样我们还是要配置一下Maven的环境变量

maven压缩包
SonarQube代码质量检查工具攻略大全_第2张图片
SonarQube代码质量检查工具攻略大全_第3张图片

2.3 Mysql安装

安装mysql之前肯定有很多人会问我,为什么要说这些基础的东西,要知道,还是有很多帅气的娃因为一些基础得环境或者版本问题搞得

脑壳都要挠秃咯!
SonarQube代码质量检查工具攻略大全_第4张图片

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; 展示 表名

此处容易遇到两个问题:
1.系统得C++环境问题导致得mysql安装失败,可以使用下面的工具C++环境补全工具安装C++环境;
2.数据库安装完成后要先创建一个名字为sonar得数据库,因为我们在下面sonarQube配置得时候是初始化sonar数据库得文件得。
如果没遇到那么各位娃都是棒棒的。
SonarQube代码质量检查工具攻略大全_第5张图片
SonarQube代码质量检查工具攻略大全_第6张图片

2.4 node.js安装

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

安装方式因截图太多,这里参考node.js安装教程
SonarQube代码质量检查工具攻略大全_第7张图片

2.5 SonarQube7.6安装

--还是老套路,将压缩包解压后修改conf\sonar.properties-图1配置文件,我这里是本地
  环境,如果是服务器上得Mysql,只需要将localhost转换为对应得IP即可
  sonar.jdbc.url    数据库连接地址
  sonar.jdbc.username 登陆数据库得用户名
  sonar.jdbc.password 登陆数据库得密码
--SonarQube启动后默认得账号和密码都是admin
--关闭SonarQube服务-图3(需要关闭任务管理器中得所有java项目)
--重启sonarQube服务-图4
--再次访问http://localhost:9000,会稍微有点慢,因为要初始化数据库信息(user中可以查看到用户信息

SonarQube代码质量检查工具攻略大全_第8张图片
SonarQube代码质量检查工具攻略大全_第9张图片
kill-java进程
SonarQube代码质量检查工具攻略大全_第10张图片

2.6 Sonar-Scanner扫描器安装

Sonar-Scanner是一个利用SonarQube服务端分析代码得命令行工具,可以把它简单得理解为SonarQube得客户端。Sonar-Scanner分析完成后会将数据post到SonarQube得数据库,从而在sonarQube中进行展示,便于分析。

--将下载好得sonar-Scanner解压编辑其中得conf\sonar-scanner.properties文件
  sonar.host.url为我们客户端得访问地址,账号密码都为admin
--配置环境变量(路径填写你的安装路径)
  新建变量,name=SONAR_SCANNER_HOME   value=D:\sonar\sonar-scanner-2.5
  打开path,输入 %SONAR_SCANNER_HOME%\bin;
  sonar-runner -version,出现以下信息,则表示环境变量设置成功

SonarQube代码质量检查工具攻略大全_第11张图片
SonarQube代码质量检查工具攻略大全_第12张图片

2.7 SVN代码管理仓库安装

到这里,相信又有很多娃儿说笔者太过于啰嗦了,为什么还不开始给老子扫描项目,莫急,磨刀不误砍柴功,当万事俱备得时候,扫描出BUG还不是分分钟得事情。
说到代码管理工具,首先想到得当然是git,gitlab,但是对于初学者来说Svn这种可视化得更适合,所有笔者这里选择了相对较为简单得Svn。
依然是跑到我给大家提供得工具库中下载下来先,然后解压,点击下面得而这个可爱得小图标,启动我们得Svn客户端,然后创建一个仓库,一直疯狂点击下一步就好了,就是这么得easy。

SVN

创建一个本地仓库

SonarQube代码质量检查工具攻略大全_第13张图片
SonarQube代码质量检查工具攻略大全_第14张图片

创建一个用户,用来提交我们得代码,然后在我们的文件夹下面创建一个文件夹来初始化我们的代码仓库Check Out,这里就不多啰嗦

大家可以参考SVN使用教程
SonarQube代码质量检查工具攻略大全_第15张图片
SonarQube代码质量检查工具攻略大全_第16张图片

2.8 Jenkins平台安装

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
第一种启动方法,切换到jenkins.war存放的目录,输入如下命令:
$ java -jar jenkins.war
如果需要修改端口可以使用如下命令:
$ java -jar jenkins.jar--httpPort=8081
然后在浏览器中(推荐用火狐)输入localhost:8081,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins。
第二种方法是用tomcat打开
解压tomcat到某个目录,如/usr/local,进入tomcat下的/bin目录,启动tomcat
将jenkins.war文件放入tomcat下的webapps目录下,启动tomcat时,会自动在webapps目录下建立jenkins目录,在地址栏上需要输入localhost:8080/jenkins。
这里我们就是采用第二种方法来搭建Jenkins,因为我们是在windows上搭建得,所以只要把jenkins.war放到tomcat得wapapps下然后启动Tomcat就可以访问Jenkins了

Jenkins入门教程

由于很多得小伙伴在下载插件这一步就跪了,所以本冲也为大家提供了已经下载好的插件,免费大甩卖,都在文末,自取,只需要将插件解压放到家目录.jenkins,替换掉plugins然后重启就可以了。
SonarQube代码质量检查工具攻略大全_第17张图片SonarQube代码质量检查工具攻略大全_第18张图片
SonarQube代码质量检查工具攻略大全_第19张图片
至此,基本上需要得环境都已经安装完了,下面就开始我们得扫描之旅吧。

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代码质量检查工具攻略大全_第20张图片
SonarQube代码质量检查工具攻略大全_第21张图片
SonarQube代码质量检查工具攻略大全_第22张图片
SonarQube代码质量检查工具攻略大全_第23张图片
SonarQube代码质量检查工具攻略大全_第24张图片

3.2已编译的maven项目,target文件中没有内容但是还是要将其注明

SonarQube代码质量检查工具攻略大全_第25张图片

sonar-project.properties文件中的内容

SonarQube代码质量检查工具攻略大全_第26张图片

之后在cmd下进入工程目录下运行:sonar-scanner

SonarQube代码质量检查工具攻略大全_第27张图片

3.3已编译的maven项目,使用maven分析器插件来分析项目

在maven的conf下的settings.xml下

SonarQube代码质量检查工具攻略大全_第28张图片

节点中添加如下代码
>
     >sonar>
     >
          >true>
     >
      >
           >jdbc:mysql://localhost:3306/sonar>
           >com.mysql.jdbc.Driver>
           >sonar>
           >sonar>
            <!-- SERVER ON A REMOTE HOST -->
           http://localhost:9000
      >
  >

之后在cmd下进入工程目录下运行:mvn clean install sonar:sonar

SonarQube代码质量检查工具攻略大全_第29张图片

3.4对JS、CSS、HTML进行代码走查

SonarQube代码质量检查工具攻略大全_第30张图片

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代码质量检查工具攻略大全_第31张图片

4.Jenkins集成SVN+maven+tomcat+sonarqube+sonar-scanner

 jenkins推荐的插件安装中没有sonarqube的安装,需要到系统管理-插件管理-可选插件中搜索sonarqube,sonarqube插件名是sonarqube scanner for jenkins,直接安装,安装成功后在系统管理-系统设置下就可看到sonarqube servers,即可配置

4.1Jenkins For SonarQube配置

4.1.1.在系统管理—插件管理中安装相应插件

在这里插入图片描述

4.1.2. 在系统管理—系统设置中对sonarqube servers进行设置

SonarQube代码质量检查工具攻略大全_第32张图片

4.1.3获取sonarqube servers的用户令牌

SonarQube代码质量检查工具攻略大全_第33张图片

4.1.4. 在系统管理—全局工具配置中对sonarqube scanner进行设置

SonarQube代码质量检查工具攻略大全_第34张图片

4.1.5.安装nodeJS插件,不安装的话会导致CSS文件无法进行扫描

在这里插入图片描述

4.1.6. 在系统管理—全局工具配置中对nodeJS进行设置

此处的安装目录填写你node.js的所在路径

SonarQube代码质量检查工具攻略大全_第35张图片

4.2对一个非maven项目项目进行代码走查,构建一个自由风格的项目

4.2.1填写项目配置信息

SonarQube代码质量检查工具攻略大全_第36张图片

4.2.2 设置构建的保存数量和时间

SonarQube代码质量检查工具攻略大全_第37张图片

4.2.3设置SVN的路径和账号

SonarQube代码质量检查工具攻略大全_第38张图片

若是用Git管理代码仓库的可以参考如下配置
这里是使用了Git来做源码管理,gitlab作为源码库 项目分支填写master

SonarQube代码质量检查工具攻略大全_第39张图片

4.2.4设置项目轮询,每5分钟轮询一次

SonarQube代码质量检查工具攻略大全_第40张图片

4.2.5勾选nodeJS的环境

SonarQube代码质量检查工具攻略大全_第41张图片

4.2.6构建触发器、构建环境(sonar的账号密码)

SonarQube代码质量检查工具攻略大全_第42张图片

4.2.7保存后对该项目进行“立即构建”操作,并可以查看sonarqube中项目的分析情况

SonarQube代码质量检查工具攻略大全_第43张图片

4.3对一个maven项目项目进行代码走查,构建一个maven项目

4.3.1填写项目配置信息,设置构建的保存数量和时间

SonarQube代码质量检查工具攻略大全_第44张图片

4.3.2设置SVN的路径和账号

SonarQube代码质量检查工具攻略大全_第45张图片

4.3.3设置项目轮询,每5分钟轮询一次

SonarQube代码质量检查工具攻略大全_第46张图片

4.3.4勾选nodeJS的环境

SonarQube代码质量检查工具攻略大全_第47张图片

4.3.5构建触发器、构建环境(sonar的账号密码)

SonarQube代码质量检查工具攻略大全_第48张图片

4.3.6在构建后操作中添加war包的操作

SonarQube代码质量检查工具攻略大全_第49张图片

4.3.7保存后对该项目进行“立即构建”操作,并可以查看sonarqube中项目的分析情况

SonarQube代码质量检查工具攻略大全_第50张图片

5 SonarQube相关指标说明

5.1SonarQube指标脑图

SonarQube代码质量检查工具攻略大全_第51张图片

5.2代码质量阀

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

SonarQube代码质量检查工具攻略大全_第52张图片
可根据实际的项目需求配置质量阀(sonar的默认配置)
SonarQube代码质量检查工具攻略大全_第53张图片

6 结束语

下一篇文章:《码了4个小时》一线大厂面试必会的Linux_shell三贱客,如何一文搞定
我希望在看这个文章的你,在新的一年,顺顺利利,并能够朝着定下得目标冲呀。
在这里插入图片描述
重点来了:
喜欢得朋友可以点个关注。老腰都酸死了。
本篇文章所用到得所有工具都在本人得公众号,【回复】sonarqube免费领取。
在这里插入图片描述

SonarQube代码质量检查工具攻略大全_第54张图片

7 参考地址

参考地址:https://juejin.im/post/5b599a265188251ac22b585c

你可能感兴趣的:(SonarQube,node.js,mysql,svn,jenkins,devops)