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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置sonarqube_jenkins进行持续JAVA代码自动构建审查相关的知识,希望对你有一定的参考价值。

本文以CentOS操作系统为例介绍SonarQube的安装配置,以及如何与Jenkins进行集成
   服务器环境:
          [[email protected] data]# uname  -a
              Linux db-server 3.10.0-327.36.3.el7.x86_64
          [[email protected] data]# java -version
               openjdk version "1.8.0_111"
          [[email protected] data]# nginx -v
               nginx version: nginx/1.10.2
          [[email protected] 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上传到服务器
技术分享图片
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目录
[[email protected] sonarqube-5.3]# cd /data/sonarqube-5.3
配置文件: conf
日志位置:bin
启动脚本位置:log
[[email protected] sonarqube-5.3]# ./bin/linux-x86-64/sonar.sh restart
技术分享图片
这里sonarqube会占用9000和9001端口,需要修改的话自行修改配置文件修改端口即可,修改之后,jenkins上链接sonar的端口也要修改

登录查看
技术分享图片

二、安装配置jenkins,maven,jdk

     参考我的博客:http://www.ny01.top/?p=126
配置安装jenkins的jdk和maven
    系统管理->Global Tool Configuration->JDK
     技术分享图片
系统管理->Global Tool Configuration->maven

   技术分享图片
三、jenkins配置sonarqube插件和安装sonarqube scanner
安装sonarqube plugin插件
  系统管理->插件管理->可选插件->sonarqube plugin 点击安装
     技术分享图片
  安装sonarqube Scanner
 

系统管理->Global Tool Configuration->sonarqube scanner
技术分享图片
配置链接sonarqube
  系统管理-》系统设置-》SonarQube servers
    技术分享图片
技术分享图片
登录sonarqube的web端,找到administrator
login-》administrator-》security-》user
技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片

开始创建项目测试了
创建一个maven项目名字为test_scan_sonar
我这里的代码放在了svn上面
技术分享图片
其他的默认即可
找到Pre Steps
  技术分享图片

技术分享图片
其他的保持默认即可
创建完毕之后  点击  立即构建
技术分享图片

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

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即可   再次构建即可看到效果了
技术分享图片 
构建完毕之后,就可以登录到jenkins和sonarqube来看代码是不是有问题了
技术分享图片
点击hz7726上面的OK  即可跳转到刚刚你设置的那个连接sonarqube的web端口,查看即可
技术分享图片
登录之后发现hz7726已经出来了,其他的都是找开发修改这个代码了
技术分享图片 
   仅供参考,大神勿喷,如果有问题可以邮件[email protected] 联系,或者qq:1263567419 反正我也帮不了你
  注意: 如果项目较多,可以修改
   里面的projectKey和ProjectName来识别不同的项目


以上是关于配置sonarqube_jenkins进行持续JAVA代码自动构建审查的主要内容,如果未能解决你的问题,请参考以下文章

使用jenkins配置.net mvc网站进行持续集成二

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

macOS如何给idea安装ja-netfilter插件

两年计划持续更新

持续集成CI&CD之配置管理最佳实践

生产环境中,RabbitMQ 持续积压消息不进行ack ,发生什么了?