1. 已安装JDK11
2. 已安装jenkins
3. 节制SonarQube源码扫描工具的基本利用,可以拜会我的上一篇文章SonarQube源码静态安全扫描工具利用入门

SonarQube用于源码质量和安全检讨,jenkins是持续集成和构建开源工具,本文演示如何实现通过git提交到代码仓库后自动拉起SonarQube扫描任务,并查看扫描结果
解释:
1. jenkins为本地安装,本地访问链接为默认的http://localhost:8080/。
2. git仓库以gitee为例。
3. SonarQube为本地安装。
jenkins安装插件Gitee Plugin在jenkins插件管理中的可选插件中搜索Gitee Plugin并安装,由于我已经安装该插件,因此显示在已安装页签中。
SonarQube Scanner for Jenkins
同样的方法安装SonarQube Scanner for Jenkins插件
jenkins配置内网穿透
由于gitee是外网环境,要实现jenkins和gitee之间的联动,我们须要把jenkins确当地做事暴露到外网中,访问https://developers.dingtalk.com/document/resourcedownload/http-intranet-penetration?pnamespace=app按照辅导进行安装,非常大略,针对windows系统实行命令轻微有点不同
ding -config=./ding.cfg -subdomain=mytest 8080
实行后,根据显示的信息访问个中一个链接即可,这个时候我们的jenkins就暴露到外网了。
系统配置
系统配置入口
全局属性中配置环境变量,必须配置的项目JAVA_HOME,须要指定JDK的路径,如果你的项目中须要用到maven,也须要配置其余两个环境变量,只有配置了环境变量,jenkins才能识别相应的命令。
SonarQube servers配置,name可自行定义,Server URL为SonarQube的访问地址,默认配置是http://127.0.0.1:9000/,Server authentication token为SonarQube项目中利用的令牌,须要在jenkins中首先创建并选择对应的令牌。
首先创建令牌,个中2为SonarQube项目中利用的令牌(创建项目时会提示创建令牌,须要把天生的令牌copy并保存后,由于创建完成后就不可见了)
Gitee 配置,个中链接名可以自由定义,Gitee 域名 URL为https://gitee.com,证书令牌必须选择Gitlee API令牌,须要在jenkins中进行创建并选择,点击测试连接返回成功表示设置ok。
创建Gitee API令牌,根据令牌中提示的链接先到gitee上天生令牌并复制到Gitee API令牌中
全局工具配置
全局工具配置入口
配置SonarQube扫描器的路径,干系扫描器的下载和实行参考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 instancesonar.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链接即可查看扫描结果。