Jenkins+SonarQube进行代码质量检测

小柒博客
小柒博客
小柒博客
361
文章
100
评论
2020-07-2311:24:27 评论 3.2K 2006字阅读6分41秒

SonarQube 介绍

SonarQube 是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测,如 Java、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面:

  • 检查代码是否遵循编程标准:如命名规范,编写的规范等。
  • 检查设计存在的潜在缺陷:SonarQube 通过插件 Findbugs、Checkstyle 等工具检测代码存在的缺陷。
  • 检测代码的重复代码量:SonarQube 可以展示项目中存在大量复制粘贴的代码。
  • 检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。
  • 检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况。

SonarQube 平台是由 4 个部分组成:

  • SonarQube Server
  • SonarQube Database
  • SonarQube Plugins
  • SonarQube Scanner

SonarQube 工作流程

SonarQube 在进行代码质量管理时,会从下图所示的七个纬度来分析项目的质量。

Jenkins+SonarQube进行代码质量检测

SonarQube 需要数据库的支持,用于存储检测项目后的分析数据,同时为了实现可持续监测,还需要持续集成工具(如Jenkins)的支持,在构建版本前,通过Jenkins+Sonar 插件执行项目分析指令,最终的结果会通过SonarQube 服务器的Web 页面展示。下图是使用SonarQube做代码持续审查的流程图:

Jenkins+SonarQube进行代码质量检测

开发人员把代码push到SCM(如gitlab)【上图第2步】,jenkins构建定义好的job,然后通过jenkins 插件(sonar scanner)分析源码【上图第3步】,jenkins把分析报告发到sonarqube server【上图第4步】。

一、SonarQube配置

SonarQube安装已在前文部署完毕,这里不再一一阐述,安装方法可参考:SonarQube安装

1)关闭SCM

关闭禁用SCM传感器配置,这一步操作完毕,Jenkins才能真正使用SonarQube Server服务器,否则,否则质量分析时会出错

配置 -->> SCM

Jenkins+SonarQube进行代码质量检测

二、Jenkins配置

1、Jenkins安装插件

安装 SonarQube Plugin插件,系统管理》插件管理—>可选插件—>SonarQube Plugin和SonarQube Scanner for Jenkins安装即可。

Jenkins+SonarQube进行代码质量检测

系统管理 -->> 系统配置,配置SonarQube

Jenkins+SonarQube进行代码质量检测

2、安装SonarQube Scanner

系统管理 -->> 全局工具配置,这里选择自动安装,安装后将安装的地址添到Scanner

Jenkins+SonarQube进行代码质量检测

3、添加项目构建测试

# 我这里已经提前添加好项目了,只需添加以下操作即可

构建配置如下

Jenkins+SonarQube进行代码质量检测

Analysis properties参数:

sonar.projectKey=Test

sonar.projectName=Test

sonar.projectVersion=1.0

sonar.language=java

sonar.dynamicAnalysis=false

sonar.sourceEncoding=UTF-8

sonar.sources=$WORKSPACE

sonar.java.binaries=$WORKSPACE

4、查看构建后结果

Jenkins+SonarQube进行代码质量检测

Jenkins+SonarQube进行代码质量检测

构建结果:Success

SonarQube结果可按下图操作查看

Jenkins+SonarQube进行代码质量检测

Jenkins+SonarQube进行代码质量检测

至此,Jenkins+SonarQube部署完毕。

5、配置SonarQube用户验证

# 默认是未开启登录验证,任何人知道SonarQube地址都可以查看所有项目,这样显然是不安全的

开启用户验证

配置 -->> 配置 -->> 权限,开启Force user authentication

Jenkins+SonarQube进行代码质量检测

# 开启后,点击保存即可。

6、生成token

配置 -->> 权限 -->> 用户 -->> 令牌,创建自己的令牌

Jenkins+SonarQube进行代码质量检测

填写令牌名称后,点击生成按钮

Jenkins+SonarQube进行代码质量检测

记住Token:f081fadd2cbfe686517c6ff2571c34766208cbe6,下面操作需要使用

7、再次构建项目

提示报错了

Jenkins+SonarQube进行代码质量检测

提示没有授权。分析这个项目需要验证。

8、配置Token

编辑sonar-scanner.properties,添加以下参数

[root@localhost ~]# vim /root/.jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/Scanner/conf/sonar-scanner.properties

添加刚才创建的Token

sonar.login=f081fadd2cbfe686517c6ff2571c34766208cbe6

添加完毕后,保存即可

9、再次创建项目

Jenkins+SonarQube进行代码质量检测

构建结果:Success

10、登录SonarQube

# 因为刚刚开启了用户验证,现在点击SonarQube就需要登录才能查看了

Jenkins+SonarQube进行代码质量检测

Jenkins+SonarQube进行代码质量检测

至此,Jenkins+SonarQube配置完毕。

继续阅读
历史上的今天
七月
23
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢本站,请打赏支持本站,谢谢!
  • 微信号
  • 微信扫一扫加我!
  • weinxin
  • 微信公众号
  • 微信扫一扫关注我!
  • weinxin
小柒博客
  • 本文由 发表于 2020-07-2311:24:27
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Jenkins根据用户权限管理指定项目 Jenkins

Jenkins根据用户权限管理指定项目

权限需求 因Jenkins上存在开发、测试、预发布等三个不同环境的项目,同时因为项目需求,需要对不同的开发及测试人员配置不同的Jenkins权限,即以项目为单位,对不同人员进行不同权限配置。 ...
Jenkins环境配置定时构建 Jenkins

Jenkins环境配置定时构建

Jenkins每次手动触发job构建,是很麻烦的一件事情,job中可以配置定时构建,今天就来分享下定时构建;构建分为两种:定时构建和轮询SCM。 一、定时构建 Jenkins采用了著名...
Jenkins配置钉钉通知 Jenkins

Jenkins配置钉钉通知

Jenkins 构建的项目信息一般会通过邮件发送给对应的开发人员。但是邮件的弊端是接收查看不是很及时。因此把Jenkins添加进钉钉聊天群就很高效的解决该类问题,本文介绍如何使用Jenkins集成钉钉...
Jenkins通过Git多分支构建发布项目 Jenkins

Jenkins通过Git多分支构建发布项目

在项目开发过程中,我们使用git进行源码管理,Jenkins进行程序构建,并打包成docker镜像或者jar包,但对同一个工程的不同分支改如何处理,要达到以下要求:不同的分支,docker镜像的tag...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: