前言
本篇博客介绍了如何通过Jenkins、GitLab和SonarQube自动化地进行代码检测和打包,从而提高软件开发的效率和质量。
步骤
在Jenkins安装GitLab插件
-
在Jenkins的
系统管理
-插件管理
安装GitLab Plugin
插件 -
在
系统管理
-Manage Credentials
添加GitLab API token
填写在GitLab创建的Token
点击
确定
即可 -
在
系统管理
-系统配置
,找到GitLab配置,填写连接名、URL,选择刚刚添加的API Token,点击Test Connection
,看到success则正常
在Jenkins安装SonarQube Scanner插件
-
在
系统管理
-插件管理
安装SonarQube Scanner
插件 -
在
系统管理
-Manage Credentials
添加Secret text
,Secret填写SonarQube创建的Token,点击确定
-
在
系统管理
-系统配置
,找到SonarQube servers配置,填写Name、Server URL,选择刚刚创建的Secret text
配置自动化打包及检测
打包某个分支
利用GitLab Webhook配置合并代码到指定分支后触发
配置
-
新建Jenkins任务
-
修改配置,填写GitLab地址,添加用户名和密码
-
添加Sonar Scanner插件
-
在
Analysis properties
填写以下内容sonar.projectKey=wdz_sync sonar.projectName=wdz_sync sonar.projectVersion=1.0 sonar.language=java sonar.sourceEncoding=UTF-8 sonar.sources=$WORKSPACE sonar.java.binaries=$WORKSPACE sonar.java.source=1.8
- projectKey填写SonarQube上的项目Key
- projectName填写项目名称,不建议中文
- projectVersion填写项目版本
- sources填写
$WORKSPACE
,使用变量的方式,即项目目录
构建
-
这个是Sonar检测完成的日志
访问SonarQube可以查看扫描结果
-
下面是打包成功的日志
可能会出现问题:Caused by: net.sourceforge.pmd.lang.java.ast.ParseException: Line 123, Column 60: Cannot use the diamond generic notation when running in JDK inferior to 1.7 mode!
原因:没有加jdk的编译版本
解决方案:Analysis properties
加上sonar.java.source=1.8
自动打包某个Tag
利用GitLab Webhook配置打Tag后触发,使用Shell脚本手动打包最新的Tag标签代码
-
新建Jenkins任务
-
修改配置,填写GitLab地址,添加用户名和密码
-
在
Pre Steps
新增执行Shell
-
写Shell脚本
这里是打包最新的Tag,也可以使用
Git Paramter
传入参数#!/bin/bash echo '======================================' echo 'check tags' export tag=`git describe --abbrev=0 --tags` echo 'last tags is '$tag echo 'checkout tags' git checkout $tag echo 'finish' echo '======================================'
-
可以加入Sonar Scanner扫描器
/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonar/bin/sonar-scanner -Dsonar.host.url=http://10.8.46.203:9000/ -Dsonar.login=5f4678fa712a70a9e4d867dac67fa18bd7bb491a -Dsonar.language=java -Dsonar.projectName=wdz_sync -Dsonar.projectVersion=$tag -Dsonar.sourceEncoding=UTF-8 -Dsonar.projectKey=wdz_sync -Dsonar.java.source=1.8 -Dsonar.java.binaries=$WORKSPACE -Dsonar.sources=$WORKSPACE -Dsonar.projectBaseDir=$WORKSPACE
上面的配置根据实体情况进行调整。
-
配置其他功能后,点
保存
即可