java 持续构建_配置sonarqube_jenkins进行持续JAVA代码自动构建审查

本文以CentOS操作系统为例介绍SonarQube的安装配置,以及如何与Jenkins进行集成服务器环境:

[root@db-server data]# uname  -a

Linux db-server 3.10.0-327.36.3.el7.x86_64

[root@db-server data]# java -version

openjdk version "1.8.0_111"

[root@db-server data]# nginx -v

nginx version: nginx/1.10.2

[root@db-server data]# mysql -V

mysql  Ver 15.1 Distrib 5.5.50-MariaDB

sonarqube-5.3.zip

一、安装配置sonar和配置数据库

1、Sonar介绍

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

可以下载官网最新的sonarqube包,但是我这次是安装的sonarqube的5.3的版本

https://www.sonarqube.org/downloads/

找到对应的版本下载即可,我此处已经下载上传到我的百度云盘里面了http://pan.baidu.com/s/1c2aOor2

下载到本地,在通过lrzsz上传到服务器

923f76eaa19f57ff5d2b43c912aa22f5.png

sonar.properties我这里配置的sonarqube的配置文件,可以适当的修改成符合自己的文件

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance  #链接的数据库

sonar.jdbc.username=root   #用户

sonar.jdbc.password=root12300. #密码

sonar.sorceEncoding=UTF-8 #字符集

sonar.login=admin  #登录账号

#sonar.projectKey=hanye:11   #key

#sonar.projectName=hanye   #显示的名字

sonar.projectVersion=1.0  #项目版本

sonar.password=admin  #登录密码配置数据库

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';

mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';

mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';

mysql> FLUSH PRIVILEGES;

启动sonarqube

我这里安装到了data目录

[root@db-server sonarqube-5.3]# cd /data/sonarqube-5.3

配置文件: conf

日志位置:bin

启动脚本位置:log

[root@db-server sonarqube-5.3]# ./bin/linux-x86-64/sonar.sh restart

2b955f1bd55d0c8745597cd964155d5d.png

这里sonarqube会占用9000和9001端口,需要修改的话自行修改配置文件修改端口即可,修改之后,jenkins上链接sonar的端口也要修改

登录查看

6b164a527736506ae05899311bdc2ca8.png

二、安装配置jenkins,maven,jdk

参考我的博客:http://www.ny01.top/?p=126

配置安装jenkins的jdk和maven

系统管理->Global Tool Configuration->JDK

999e8d8b2a97a33b3c866a4db979770c.png

系统管理->Global Tool Configuration->maven

6905d159ec6c4526caaad78bcb69d219.png

三、jenkins配置sonarqube插件和安装sonarqube scanner

安装sonarqube plugin插件

系统管理->插件管理->可选插件->sonarqube plugin 点击安装

b204055fe7762e3cb97ef147999d3cf7.png

安装sonarqube Scanner系统管理->Global Tool Configuration->sonarqube scanner

1c5d776e638876983cff4ee6cfc9069b.png

配置链接sonarqube

系统管理-》系统设置-》SonarQube servers

af0350234d97fcc29e0806c11d0b0ffd.png

4eff773d4a2ffc15257a4f245c8c44af.png

登录sonarqube的web端,找到administrator

login-》administrator-》security-》user

46753ff042a6f8f0b644e086fc48c849.png

2270ae8a9527ae48f0728d0d56710150.png

8ae249832baa3719463b76fa6890c68c.png

967d363ef75cfffd9ac10612fcf93c73.png

a3ae1b20ca632b8f2d8a88fe1edc864f.png

开始创建项目测试了

创建一个maven项目名字为test_scan_sonar

我这里的代码放在了svn上面

a49ce95a54ceb2a195b8cac81815a5a3.png

其他的默认即可

找到Pre Steps

ae0ca78576d488b8185865a1b101e2c5.png

fd3088e3475a5a488c95ff89952e10df.png

其他的保持默认即可

创建完毕之后  点击  立即构建

a02fe6b3dfc9f85d0430cc474df6f664.png

然后等待下载依赖环境,和自动构建即可  时间可能比较长

构建的时候如果遇到SonarQube scanner exited with non-zero code: 1

问题,基本上就是sonarqube的scm忘记打开了,于是登录sonarqube的web端开启scm

administrator-》configureation-》General Settings-》SCM

吧Disable the SCM Sensor 设置为TRUE,点击 save SCM settings即可  再次构建即可看到效果了

89efc3250c8b6a6bb8fbdad83ddf34c1.png

构建完毕之后,就可以登录到jenkins和sonarqube来看代码是不是有问题了

4f6bcbbd8e62d39708aa0673aa0c8c82.png

点击hz7726上面的OK  即可跳转到刚刚你设置的那个连接sonarqube的web端口,查看即可

7daf9eeee3bb9b32cf2acfa9634249e2.png

登录之后发现hz7726已经出来了,其他的都是找开发修改这个代码了

6cd1509be1f7e6dc0af22ea04eeff95b.png

仅供参考,大神勿喷,如果有问题可以邮件hz7726@163.com 联系,或者qq:1263567419 反正我也帮不了你

注意: 如果项目较多,可以修改

里面的projectKey和ProjectName来识别不同的项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值