💯 作者: 俗世游子【谢先生】。 8年开发3年架构。专注于Java、云原生、大数据等领域技术。
💥 成就: 从CRUD入行,负责过亿级流量架构的设计和落地,解决了千万级数据治理问题。
📖 同名社区:51CTO、 github、掘金、gitee。
📂 清单: goku-framework、【更新中】享阅读II
DevOps系列
深入浅出DevOps:SonarQube提升代码质量
前言
既然我们已经了解了关于SonarQube的相关内容,那么接下来就到了本章的重头戏:
- Jenkins横行的世界里,哪里还需要手动将项目推送进行检测,自然是让Jenkins帮助我们完成这一切。那么接下来我们就看看如何在Jenkins中对SonarQube进行操作吧
集成SonarQube
主要流程
将SonarQube整合到Jenkins上其实也不难,只需要完成三步:
- 在Jenkins中下载SonarScanner的插件
- 在配置中心配置SonarScanner的完整路径
- 准备就绪之后,开始项目配置,执行SonarScanner的脚本
那么,接下来就完成这第一步
下载插件
进入到Jenkins的插件管理页面,在其中搜索集成SonarQube Scanner,然后点击安装
这样等待片刻安装成功之后,在全局工具配置
中能够看到相关SonarQube Scanner的配置信息就可以
配置SonarQube Scanner
然后接下来就开始进行配置吧,上一节相信大家都下载过了,如果没有下载大家通过下面的方式就可以直接下载到服务器上
这里我们自己将sonar-scanner下载,将其放到Jenkins数据卷挂载的本地目录中。这样sonar-scanner也就实际存在于/var/jenkins_home
- 可执行程序下载
那么这里的我们也要做这样的操作,保证SonarQube Scanner在容器内部也能访问的到
我们进入到容器内部进行查看,已经能够看到SonarQube Scanner了
- Jenkins全局工具配置设置
这里一定要注意图中框住的地方,一定是容器内部的目录地址,而不是本地目录
配置SonarQube服务
有了上一章的基础之后,我们这里想要将项目进行质量检查非常简单,只需要在Jenkins任务配置中添加一个执行shell脚本的命令即可
记住:这种方式需要将SonarQube的服务地址写在SonarScanner的配置文件中。而这样的话如果SonarQube的地址改变之后我们需要登录到服务器上修改SonarQube Scanner的配置信息比较繁琐。
那接下来我们就采用另一种方式
配置SonarQube的权限
SonarQube是需要登录验证的,当然为了减少账户密码的流动,我们这里使用SonarQube的令牌机制。
进入到SonarQube的配置>权限
下查看图中的三个选项是否开启,默认情况下都是开启状态
添加令牌
随后点击账户头像>我的账号>安全
,在令牌的框中生成想要的令牌
记住:及时复制保存
Jenkins添加SonarQube服务
回到Jenkins中,进入到系统管理>系统配置
,找到SonarQube servers
的地方添加SonarQube服务
按照以往经验,在添加登录凭证的时候选择的都是用户名/密码
的方式,这次我们选择Secret Text
的方式
这样就完成了SonarQube服务的配置,随后再有改动就会变得很简单
项目配置
前置工作全部完成之后,接下来就要开始在项目中进行配置了,还记得我们之前的项目吧.
我们继续在该项目中进行才做,点击配置进行到配置页面
通过最开始一系列的配置,能够发现在项目构建下>添加构建步骤
中多了一个选项,这个就是我们想要的
这里将这几个参数做一个简单介绍:
- Task to run
这一栏什么都不用填,
- JDK
JDK选择我们全局配置的就可以
- Path to project properties
sonar-project.properties文件 中(-Dproject.settings) 的位置。如果未指定默认值为 sonar-project.properties,路径应该相对于模块根目录。
已当前项目为例,这里默认是项目的的根目录
- Analysis properties
这里会将一些配置参数传递给SonarQube。也就是说如果我们没有sonar-project.properties的文件,那么我们可以把相关配置配置在这里。
提示
著名的开源项目都是比较友好的,会给出相关的介绍和实例:
- 点击问号,就能够看到相关参数的介绍,并且Jenkins还给出了案例以供参考
注意:
从4.1.2开始,强制要求sonar.java.binaries参数
那,这样就简单了。我们将上一章sonar-project.properties
的内容复制到Analysis properties下,我们来执行一下
相关变量参数相信不需要我做过多的介绍,之前我们也了解过
立即构建
先来看看构建日志,看看构建成功的样子
再到SonarQube下查看,发现已经成功通过Jenkins将项目推送。
进入到项目页面,发现了SonarQube的菜单项,点击它能够直接跳转到到对应SonarQube的项目详情下
最后
好了,实操性的文章总是这么的简短,并且相应流程也介绍的非常清晰。
大家赶快操作起来吧!!!