gitlab、Jenkins、Sonar集成

目录

概述

jenkins中安装gitlab插件

jenkins中安装sonar插件

jenkins重启

jenkins中的相关配置

JDK配置

Maven配置

在gitlab中创建访问token

在jenkins中配置gitlab插件

在soanrQube中生成token

在jenkins中配置sonar插件

1、系统设置

2、全局工具配置

在jenkins中配置任务,并启用触发器

在gitlab中配置webhook

webhook测试



概述

本文实现如何使用jenkins结合sonar可以实现代码的自动检查。

  1. 提交 Java 项目代码至 GitLab。

  2. GitLab 通过 webhook 自动触发 Jenkins执行任务

  3. Jenkins 获取代码,执行 Sonar 分析代码。

  4. 在 Sonar 的服务器界面查看分析结果

安装gitlab           参考本人博客:https://blog.csdn.net/allensandy/article/details/104104868

安装jenkins        参考本人博客:https://blog.csdn.net/allensandy/article/details/100995666

安装sonarqube  参考本人博客:https://blog.csdn.net/allensandy/article/details/104146568

 

jenkins中安装gitlab插件

要实现gitlab自动触发jenkins任务,需要在jenkins中安装gitlab插件。从jenkins的“系统管理”-“管理插件”中找到gitlab插件并下载安装,重启jenkins后生效。

 

jenkins中安装sonar插件

 

jenkins重启

再啰嗦一下,maven库文件的位置不用用docker中默认的.m2,修改方法参考:https://blog.csdn.net/allensandy/article/details/100995666

 

jenkins中的相关配置

JDK配置

“系统管理”-“系统配置”(.m2修改参考上面):

如果未配置maven,进入“系统管理”-“全局工具配置

 

Maven配置

在gitlab中创建访问token

jenkins中安装的gitlab插件在配置时,需要gitlab的访问token,先要在gitlab中创建访问的token。点击“用户设置”-“Access Tokens”菜单,进入访问token设置界面。然后输入“Name”,并在“Scopes”中勾选“api”,点击“Create ...”按钮即可创建访问token。创建成功后,一定要将生成的token保存下来,后面将无法再查看生成的token,如果未保存后面只能重新生成

 

在jenkins中配置gitlab插件

在jenkins中,进入“系统管理”-“系统设置”-“Gitlab”配置。输入“Connection name”、“Gitlab host URL”,在“Credentials”中点击“Add”添加gitlab的授权token。

 

点击添加后,会进入添加凭据界面。在添加界面,选择类型为“GitLab API token”,API token设置为前面在gitlab中创建的token值。然后点击“添加”按钮创建凭据。

 

添加完gitlab api token,在Gitlab设置界面“Credentials”中选择前面添加的token,然后点击“Test Connection”测试是否成功。测试成功后保存。

 

在soanrQube中生成token

 

在jenkins中配置sonar插件

1、系统设置

在jenkins中,进入“系统管理”-“系统设置”-“SonarQube servers”配置。勾上“Enable injection of SonarQube server configuration ...”选项,输入“Name”、“Server URL”以及“Server authentication token”。token为前面部署sonarqube服务器时创建的token。

Name: 可自定义。

Server URL: SonarQube 服务器的 URL。

Server authentication token: 点击 Add 配置凭证:类型: 选择 GitLab API token。API token: 为前面部署 SonarQube 服务器时创建的 token。

点击 Add 没有反应,建议更换浏览器,是浏览器兼容性问题。

2、全局工具配置

进入“系统管理”-“全局工具配置”-“SonarQube Scanner”,点击“SonarQube Scanner 安装”并配置SonarQube Scanner。


在jenkins中配置任务,并启用触发器

进入任务的配置界面,在源码管理设置部分,选择“Git”,配置好工程的git地址以及获取代码的凭证信息。然后在“Additional Behaviours”中添加“Clean before checkout”。可以根据自己的需要在“Branches to build”中设置所需要获取的代码分支。

 

进入jenkins的任务设置界面,在“构建触发器”中,勾上“Build when a change pushed to Gitlab.Gitlab webhook URL ...”(这里的webhook URL在后面配置gitlab时需要),根据自己的需要设置其它的选项。点击“高级”按钮,然后点击“Generate”按钮生成Secret token(这里的token后面配置gitlab时需要)。

在“构建环境”配置中勾选“Prepare SonarQube Scanner environment”。

“Build”

“Post Steps”

添加“Execute SonarQube Scanner”

在“Task to run”中输入scan,即分析代码。在“Analysis properties”中输入下面内容。sonar.language 指定了要分析的开发语言(特定的开发语言对应了特定的规则),sonar.sources 定义了需要分析的源代码位置(示例中的$WORKSPACE 所指示的是当前 Jenkins 项目的目录),sonar.java.binaries 定义了需要分析代码的编译后 class 文件位置;sonar.java.source 指定java版本。

sonar.login=admin
sonar.password=admin
sonar.projectKey=demo
sonar.projectName=demo
sonar.language=java
sonar.java.binaries=$WORKSPACE/XXX/target/classes/ 
sonar.sources=$WORKSPACE/XXX/src
sonar.java.source=1.8

 

此时可以先手动验证一下:

 

 

sonar中回自动产生一个项目:

 

在gitlab中配置webhook

在gitlab的项目设置中选择“Integrations”,然后在URL和Secret token中填入上一步jenkins设置中的token内容:

由于每次代码提交到gitlab后都触发jenkins执行任务,所以这里勾选“Push events”,然后去掉“Enable SSL verification”的勾选项,并点击“Add webhook”按钮添加。

 

 

webhook测试

添加完成后,在下面可以看到刚才添加的webhook,点击“Test”按钮在弹出的菜单中选择“Push events”发送测试请求,发送成功后会显示“Hook executed successfully”信息。

 

webhook发送成功后,到jenkins中可以看到正在执行触发的任务。配置成功后,后面只要有git的tag提交到gitlab即可直接触发jenkins执行sonar任务。

 

同时触发sonarQube scanner :

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值