您的位置 首页 java

使用jenkins自动化SonarQube源码扫描

本文目标

SonarQube用于源码质量和安全检查,jenkins是持续集成和构建开源工具,本文演示如何实现通过 git 提交到代码仓库后自动拉起SonarQube扫描任务,并查看扫描结果

说明:

1. Jenkins 为本地安装,本地访问链接为默认的。

2. git仓库以gitee为例。

3. SonarQube为本地安装。

jenkins安装插件

  • Gitee Plugin

在jenkins插件管理中的可选插件中搜索Gitee Plugin并安装,由于我已经安装该插件,因此显示在已安装页签中。

  • SonarQube Scanner for Jenkins

同样的方法安装SonarQube Scanner for Jenkins插件

jenkins配置

  • 内网穿透

由于gitee是 外网 环境,要实现jenkins和gitee之间的联动,我们需要把jenkins的本地服务暴露到外网中,访问按照指导进行安装,非常简单,针对windows系统执行命令稍微有点不同

 ding -config=./ding.cfg -subdomain=mytest 8080  

执行后,根据显示的信息访问其中一个链接即可,这个时候我们的jenkins就暴露到外网了。

  • 系统配置

系统配置入口

全局属性中配置 环境变量 ,必须配置的项目JAVA_HOME,需要指定JDK的路径,如果你的项目中需要用到 maven ,也需要配置另外两个环境变量,只有配置了环境变量,jenkins才能识别相应的命令。

SonarQube servers配置,name可自行定义,Server URL为SonarQube的访问 地址 ,默认配置是 Server authentication token为SonarQube项目中使用的令牌,需要在jenkins中首先创建并选择对应的令牌。

首先创建令牌,其中2为SonarQube项目中使用的令牌(创建项目时会提示创建令牌,需要把生成的令牌copy并保存后,因为创建完成后就不可见了)

Gitee 配置,其中链接名可以自由定义,Gitee 域名 URL为 ,证书令牌必须选择Gitlee API令牌,需要在jenkins中进行创建并选择,点击测试连接返回成功表示设置ok。

创建Gitee API令牌,根据令牌中提示的链接先到gitee上生成令牌并复制到Gitee API令牌中

  • 全局工具配置

全局工具配置入口

配置SonarQube 扫描器 的路径,相关扫描器的下载和执行参考

jenkins创建SonarQube扫描任务

首先创建自由风格的任务

Gitee链接选择已创建好的gitee链接

源码管理配置, Repository URL为gitee仓库的URL地址,Credentials为gitee仓库的认证,指定分支默认为master

创建gitee仓库的认证信息

构建触发器配置,勾选 Gitee webHook 触发构建,其他配置可以保持默认,记录其中的URL地址,后面配置webHook需要用到

点击生成webHook密码

构建步骤增加Execute SonarQube Scanner

Server authentication token选择 SonarQube servers配置时创建的token

其中task to run输入scan,即分析代码,这个名字不能随意更改,否则拉起会报错(也可以输入-X表示按照debugging模式输出), Analysis properties参考下面的内容, sonar.projectKey的值可以自由定制,其他参数都未使用。

 # must be unique in a given SonarQube instance
sonar.projectKey=demo
# --- optional properties ---
# defaults to project key
#sonar.projectName=My project
# defaults to 'not provided'
#sonar.projectVersion=1.0
 
# Path is relative to the sonar-project.properties file. Defaults to .
#sonar.sources=.
 
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8  

gitee配置

登录gitee,在仓库的管理中的weebhook选项中添加weebHook

其中 URL使用上面源码管理中提示的URL,但是需要把内网地址替换为穿透后的外网地址;WebHook 密码/签名密钥输入jenkins源码管理配置中生成的密码,输入后点击激活。

测试效果

至此,gitee和Jenkins的联动配置已完成,可以场景向该仓库提交代码查看jenkins任务有没有触发扫描任务,正常会自动触发拉起扫描任务,扫描任务完成后点击SonarQube链接即可查看扫描结果。

文章来源:智云一二三科技

文章标题:使用jenkins自动化SonarQube源码扫描

文章地址:https://www.zhihuclub.com/200904.shtml

关于作者: 智云科技

热门文章

网站地图