一、jenkins安装插件
1.1下载SonarQube插件
进入Jenkins的系统管理->插件管理->可选插件,搜索框输入sonarqube,安装重启。
1.2启用SonarQube
Jenkins的系统管理->系统配置,添加SonarQube服务。
二、SonarQube配置
2.1禁用审查结果上传到SCM功能
2.2生成token
添加jenkin用户 token:squ_4bc173eb520dd35c176104baa1b899a992e88c88
三、jenkins配置
3.1添加令牌
Jenkins的系统管理->系统配置->添加token
类型切换成Secret text,粘贴token,点击添加。
选上刚刚添加的令牌凭证,点击应用保存。
3.2SonarQube Scanner 安装
进入Jenkins的系统管理->全局工具配置,下滑找到图片里的地方,点击新增SonarQube Scanner,我们选择自动安装并选择最新的版本。
四、非流水线项目添加代码审查
4.1添加构建步骤
编辑之前的自由风格构建的demo项目,在构建阶段新增步骤。
analysis properties参数如下
# 项目名称id,全局唯一
sonar.projectKey=sprint_boot_demo
# 项目名称
sonar.projectName=sprint_boot_demo
sonar.projectVersion=1.0
# 扫描路径,当前项目根目录
sonar.sources=./src
# 排除目录
sonar.exclusions=**/test/**,**/target/**
# jdk版本
sonar.java.source=1.17
sonar.java.target=1.17
# 字符编码
sonar.sourceEncoding=UTF-8
# binaries路径
sonar.java.binaries=target/classes
4.2构建并查看结果
jenkins点击立即构建,查看构建结果
查看SonarQube扫描结果
五、流水线项目添加代码审查
5.1创建sonar-project.properties文件
项目根目录下,创建sonar-project.properties文件,内容如下
# 项目名称id,全局唯一
sonar.projectKey=sprint_boot_demo
# 项目名称
sonar.projectName=sprint_boot_demo
sonar.projectVersion=1.0
# 扫描路径,当前项目根目录
sonar.sources=./src
# 排除目录
sonar.exclusions=**/test/**,**/target/**
# jdk版本
sonar.java.source=1.17
sonar.java.target=1.17
# 字符编码
sonar.sourceEncoding=UTF-8
# binaries路径
sonar.java.binaries=target/classes
5.2修改Jenkinsfile
加入SonarQube代码审查阶段
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
echo '开始拉取代码'
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
userRemoteConfigs: [[url: 'https://gitee.com/axzys/sprint_boot_demo.git']]])
echo '拉取代码完成'
}
}
stage('打包编译') {
steps {
echo '开始打包编译'
sh 'mvn clean package'
echo '打包编译完成'
}
}
stage('代码审查') {
steps {
echo '开始代码审查'
script {
// 引入SonarQube scanner,名称与jenkins 全局工具SonarQube Scanner的name保持一致
def scannerHome = tool 'SonarQube'
// 引入SonarQube Server,名称与jenkins 系统配置SonarQube servers的name保持一致
withSonarQubeEnv('SonarQube') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
echo '代码审查完成'
}
}
stage('部署项目') {
steps {
echo '开始部署项目'
echo '部署项目完成'
}
}
}
}
5.3构建测试
评论 (0)