基于jenkins2.107.1+sonarqube6.73进行代码质量的静态检查介绍

        一直想使用CI进行敏捷开发,前段时间使用了jenkins,已达到编译,发布,使用jmeter自动化测试的效果,但代码质量一直没有一个好的工具进行评估、检查。后来同事介绍使用sonarqube是一个不错的选择,我觉得可以一试。折腾了一天,基本上可行了,但网上的资料有些是基于老版本的说明,耽误不少工夫,现将我的经历写出来,供大家分享,有问题大家可以随时沟通。谢谢。        

致谢:

(1)、https://blog.csdn.net/aixiaoyang168/article/details/77565756 (sonarqube我基本参考这篇文章完成,但这篇也有些是行不通的)

(2)、https://blog.csdn.net/hc_ttxs/article/details/79384535 (jenkins有这篇也基本可以)但有一个地方作者可能是笔误(文章为下述部分有误,应该是我这个):

set "JAVA_OPTS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"


正文:

(0)、整体步骤

准备工作--》下载sonarqube--》修改配置文件,让sonarqube支持mysql--》安装插件--》修改maven 的settings.xml文件--》在jekins下安装sonarqube插件,并配置jenkins的sonarqube插件--》查看结果。

(1)、准备工作

安装jdk与mysql(可以不安装,使用自带的h2,但不推荐)
jdk:1.8u144
mysql:5.7.20
maven:3.5.0
sonarqube:6.7.3(因为这个是LTS版本,目前最新版本为7.0)

(2)、下载sonarqube

下载6.7.3并解压,各个目录的含义如下:

进行目录 :sonarqube-6.7.3\bin\windows-x86-64
运行:startsonar.bat,结果如下:

在本机流程器中输入如下内容:

至此,证明sonarqube能够正式运行了。默认管理员的用户与密码为:admin/admin

(3)、在上图中,按ctrl+c,停止sonarqube,修改mysql为数据库


打开sonarqube-6.7.3\conf\sonar.properties文件,修改如下:

进入mysql命令行:
输入如下命令
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar' ;
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@ '%' IDENTIFIED BY 'sonar' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'sonar'@ 'localhost' IDENTIFIED BY 'sonar' WITH GRANT OPTION; FLUSH PRIVILEGES;
至此数据库设置完成,重新启动sonarqube即可。输入admin:admin后,会有个设置,如下所示。

(4)、安装插件 (下载两个附件,直接将文件拷贝到extensions\plugin目录,可略过本节,重启sonarqube即可)

a.安装chinese插件
目前来看,直接从官方网站下载好像是不行的。
如下所示:


查看兼容性问题,如下表所示(6.7的需要1.19的支持,注意一个版本对应一个,不能想当然的说1.20就可以兼容1.19,这是错误的):

找到对应的tag,点击下载

下载结束,然后进行相应目录,执行mvn package,jar生成在target目录下
将生成的jar包拷贝到sonarqube的extensions\plugins目录下即可,重启sonarqube,即可看到中文界面:

b、安装checkstyle插件(同理,这个直接在sonarqube的market也是无法直接安装的)
到checkstyle官网,下载jar包 https://github.com/checkstyle/sonar-checkstyle/releases
目前我下载的是4.9的版本,可以支持6.7.3,下载这个插件可能需要墙,请注意。将下载的jar包拷贝到sonarqube的extensions\plugins目录下即可,重启sonarqube,。登录后,可以看到安装是否成功:


(5)、配置maven的settings.xml

打开maven所在目录的conf\settings.xml,添加如下内容:
<settings > <!-- 这个节默认都有的,只需要添加pluginGroups和profile即可 --> <pluginGroups > <pluginGroup > org.sonarsource.scanner.maven </pluginGroup > </pluginGroups > <profiles > <profile > <id > sonar </id > <activation > <activeByDefault > true </activeByDefault > </activation > <properties > <sonar.host.url > http://localhost:9000 </sonar.host.url > </properties > </profile > </profiles > </settings >
进入我们需要进行检查的工程所在目录,输入以下命令:
mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar
maven执行结束后,便当sonarqube,可以看到如下界面:

(6)、配置jenkins的sonarqube(与上面第5项的功能是一致的)

打开jekins,打开构建的项目配置,找到构建这项,如下所示:

上面的goals内容为:
clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar compile
点击构建,成功后,直接登录sonarqube,也可以看到如下所示的图:

(7)、配置各个语言的方法如下参考

目前我只对java语言进行了分析,对ts,js,c/c++等没有进行过配置,包括用户权限,目前都没有研究,所以本文只当是一个入门,后面有新的发现,我再来分享。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值