前言 随便写写,你们也就随便看看,2020年,争取拿个乒乓球小区冠军。html
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检测单个任务规则的应用状况, 检测耦合。
复制代码
本文主要讲述如何在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笔者已经下载好了,主要是由于防止不少人插件下载失败,全部的安装文件都放在了网盘中,可自取
复制代码
双击安装JDK,细节这里就不说了,你们不会的能够百度一下,安装完JDK以后须要配置一下环境变量
复制代码
一样将maven的安装包解压到任意一个磁盘中,一样咱们仍是要配置一下Maven的环境变量
复制代码
安装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
node.js也是必不可少得一环,若是没有node.js环境,没法对代码中得Css文件进行扫描。
复制代码
安装方式因截图太多,这里参考node.js安装教程 web
--仍是老套路,将压缩包解压后修改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-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,出现如下信息,则表示环境变量设置成功
复制代码
到这里,相信又有不少娃儿说笔者太过于啰嗦了,为何还不开始给老子扫描项目,莫急,磨刀不误砍柴功,当万事俱备得时候,扫描出BUG还不是分分钟得事情。
说到代码管理工具,首先想到得固然是git,gitlab,可是对于初学者来讲Svn这种可视化得更适合,全部笔者这里选择了相对较为简单得Svn。
依然是跑到我给你们提供得工具库中下载下来先,而后解压,点击下面得而这个可爱得小图标,启动咱们得Svn客户端,而后建立一个仓库,一直疯狂点击下一步就行了,就是这么得easy。
复制代码
建立一个本地仓库
复制代码
建立一个用户,用来提交咱们得代码,而后在咱们的文件夹下面建立一个文件夹来初始化咱们的代码仓库Check Out,这里就很少啰嗦
复制代码
你们能够参考 SVN使用教程
数据库
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,替换掉plugins而后重启就能够了。
至此,基本上须要得环境都已经安装完了,下面就开始咱们得扫描之旅吧。windows
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
复制代码
sonar-project.properties文件中的内容
复制代码
以后在cmd下进入工程目录下运行:sonar-scanner
复制代码
在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
复制代码
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
复制代码
jenkins推荐的插件安装中没有sonarqube的安装,须要到系统管理-插件管理-可选插件中搜索sonarqube,sonarqube插件名是sonarqube scanner for jenkins,直接安装,安装成功后在系统管理-系统设置下就可看到sonarqube servers,便可配置
复制代码
此处的安装目录填写你node.js的所在路径
复制代码
如果用Git管理代码仓库的能够参考以下配置
这里是使用了Git来作源码管理,gitlab做为源码库 项目分支填写master
复制代码
代码质量的统计,能够帮助咱们判断项目是否能够投入生产环境
复制代码
可根据实际的项目需求配置质量阀(sonar的默认配置)
下一篇文章:如何使用Jenkins构建搭载钉钉以及邮箱通知
我但愿在看这个文章的你,在新的一年,顺顺利利,并可以朝着定下得目标冲呀。 重点来了: 喜欢得朋友能够点个关注,今天这个文章真的是码了我4个多小时呢,老腰都酸死了。
本篇文章所用到得全部工具都在本人得公众号,【回复】[sonarqube]免费领取。
CSDN连接地址:blog.csdn.net/lmarster/ar…