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

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

1 概述

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

(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自动构建,全部的环境请按照笔者的要求搭建,以便你们能够成功搭建。node

(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以后须要配置一下环境变量
复制代码

JAVA_HOME变量配置 PATHl路径配置

2.2 Maven安装

一样将maven的安装包解压到任意一个磁盘中,一样咱们仍是要配置一下Maven的环境变量
复制代码

maven压缩包 maven_home maven_path

2.3 Mysql安装

安装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; 展现 表名
复制代码

此处容易遇到两个问题: 1.系统得C++环境问题致使得mysql安装失败,可使用下面的工具C++环境补全工具安装C++环境; 2.数据库安装完成后要先建立一个名字为==sonar==得数据库,由于咱们在下面sonarQube配置得时候是初始化sonar数据库得文件得。 若是没遇到那么各位娃都是棒棒的。 赞 在这里插入图片描述git

2.4 node.js安装

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

安装方式因截图太多,这里参考node.js安装教程 在这里插入图片描述web

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中能够查看到用户信息
复制代码

sonar配置文件 sonarqube登录 kill-java进程 重启sonarqube

2.6 Sonar-Scanner扫描器安装

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

--将下载好得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,出现如下信息,则表示环境变量设置成功
复制代码

在这里插入图片描述 scanner版本号

2.7 SVN代码管理仓库安装

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

SVN

建立一个本地仓库
复制代码

在这里插入图片描述 在这里插入图片描述

建立一个用户,用来提交咱们得代码,而后在咱们的文件夹下面建立一个文件夹来初始化咱们的代码仓库Check Out,这里就很少啰嗦
复制代码

你们能够参考 SVN使用教程 在这里插入图片描述 在这里插入图片描述数据库

2.8 Jenkins平台安装

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工做,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins功能包括:
一、持续的软件版本发布/测试项目。
二、监控外部调用执行的工做。
第一种启动方法,切换到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而后重启就能够了。 在这里插入图片描述在这里插入图片描述 夸我 至此,基本上须要得环境都已经安装完了,下面就开始咱们得扫描之旅吧。windows

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
复制代码

1 2 3 4 在这里插入图片描述

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

在这里插入图片描述

sonar-project.properties文件中的内容
复制代码

在这里插入图片描述

以后在cmd下进入工程目录下运行:sonar-scanner
复制代码

在这里插入图片描述

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

在maven的conf下的settings.xml下
复制代码

在这里插入图片描述

在<profiles></profiles>节点中添加以下代码
复制代码
<profile>
     <id>sonar</id>
     <activation>
          <activeByDefault>true</activeByDefault>
     </activation>
      <properties>
           <sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>
           <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
           <sonar.jdbc.username>sonar</sonar.jdbc.username>
           <sonar.jdbc.password>sonar</sonar.jdbc.password>
            <!-- SERVER ON A REMOTE HOST -->
           <sonar.host.url>http://localhost:9000</sonar.host.url>
      </properties>
  </profile>

复制代码
以后在cmd下进入工程目录下运行:mvn clean install sonar:sonar
复制代码

在这里插入图片描述

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

在这里插入图片描述

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
复制代码

在这里插入图片描述

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进行设置

在这里插入图片描述

4.1.3获取sonarqube servers的用户令牌

用户令牌

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

sonar_scanner

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

在这里插入图片描述

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

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

node.js

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

4.2.1填写项目配置信息

在这里插入图片描述

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

在这里插入图片描述

4.2.3设置SVN的路径和帐号

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

4.2.5勾选nodeJS的环境

在这里插入图片描述

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

在这里插入图片描述

4.2.7保存后对该项目进行“当即构建”操做,并能够查看sonarqube中项目的分析状况

在这里插入图片描述

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

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

在这里插入图片描述

4.3.2设置SVN的路径和帐号

svn

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

4.3.4勾选nodeJS的环境

node.js

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

在这里插入图片描述

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

在这里插入图片描述

4.3.7保存后对该项目进行“当即构建”操做,并能够查看sonarqube中项目的分析状况

在这里插入图片描述

5 SonarQube相关指标说明

5.1SonarQube指标脑图

在这里插入图片描述

5.2代码质量阀

代码质量的统计,能够帮助咱们判断项目是否能够投入生产环境
复制代码

在这里插入图片描述 可根据实际的项目需求配置质量阀(sonar的默认配置) 在这里插入图片描述

6 结束语

下一篇文章:如何使用Jenkins构建搭载钉钉以及邮箱通知

我但愿在看这个文章的你,在新的一年,顺顺利利,并可以朝着定下得目标冲呀。 在这里插入图片描述 重点来了: 喜欢得朋友能够点个关注,今天这个文章真的是码了我4个多小时呢,老腰都酸死了。

本篇文章所用到得全部工具都在本人得公众号,【回复】[sonarqube]免费领取。

CSDN连接地址:blog.csdn.net/lmarster/ar… 在这里插入图片描述

相关文章
相关标签/搜索