Ken的杂谈
  • Ken的杂谈 (current)
  • 关于
  • 杂谈
    Java Spring Spring Boot Spring Cloud MyBatis C# .NET Core .NET ASP.NET Core ASP.NET ClassLibrary Mono 数据库 MySQL SQL Server 网络 缓存 Web Linux CentOS Ubuntu macOS Windows openEuler Nginx ServiceStack JS/JQ 正则 工具 IDE Grafana Exceptions CI/CD Solution 微服务 Arch Docker 杂谈
  • 系列
    Java 快速入门系列教程 Spring Boot 入门教程 Spring Boot 2.x 入门教程 Spring Cloud 入门教程 .NET Core 快速入门教程 ASP.NET Core 2.1 入门教程 CentOS 7 快速上手教程 Ubuntu快速上手入门教程 Hyper-V基础教程 Docker入门教程
  • GitHub

Jenkins集成SonarQube进行代码质量扫描

工具 Solution CI/CD @ 2019-08-07 21:19:22 · 阅读:(19946)

一、前言

1、本文主要内容

  • Jenkins集成SonarQube Server配置
  • Jenkins集成SonarQube Scanner配置
  • Jenkins+Maven+SonarQube扫描Java项目代码质量
  • Jenkins集成SonarQube Scanner参数说明

2、环境信息

  • 服务器
服务器名 操作系统 IP 说明
Jenkins CentOS 7 192.168.88.44 部署Jenkins
Sonar CentOS 7 192.168.88.45 部署Sonar
  • 软件
工具/环境 版本
Jenkins 2.176.2
Maven 3.6.1
SonarQube Server 7.5
SonarQube Scanner 2.8
JDK 1.8.0_181

3、准备工作

  • Jenkins部署

参考:https://ken.io/note/centos7-jenkins-install-tutorial

部署在服务器192.168.88.44,访问地址为:http://192.168.88.44:8080

  • SonarQube部署

参考:https://ken.io/note/sonarqube-install-and-code-scan-tutorial

部署在服务器192.168.88.45,访问地址为:http://192.168.88.45:9000

二、Jenkins集成SonarQube配置

1、安装插件

菜单:管理Jenkins->插件管理,安装以下插件:

  • 插件列表
插件名 版本 说明
SonarQube Scanner 2.9 集成SonarQube进行代码扫描/检查

2、生成SonarQube Token

SonarQube菜单:My Account -> Security 或者访问:http://192.168.88.45:9000/account/security/

jenkins-sonarqube-token-generate.png

生成之后记得复制并保存Token,不然页面刷新或者关闭后就无法查询到Token了。

ac28526ece72a4f10104059049d3e6e0347da9f7

3、添加Jenkins凭据

菜单:凭据 —> 系统 -> 全局凭据 -> 添加凭据,或者直接访问:http://192.168.88.44:8080/credentials/store/system/domain/_/newCredentials添加凭据

jenkins-credentials-sonarqube-token.png

类型选择:Secret text,然后Secret中填入之前生成的Token,ID只要不跟之前重复就行。

4、配置SonarQube Server

菜单:管理Jenkins -> 系统设置 ,或者直接访问:http://192.168.88.44:8080/configure

找到SonarQube servers配置项增加SonarQube Server

jenkins-configure-sonarqube-server.png

配置项说明:

配置项 说明
Name Sonar服务名,按照自己习惯来即可
Server URL SonarQube Server的主页地址
Sonar authentication token Sonar Token,选择已添加的凭据即可

5、配置SonarQube Scanner

菜单:管理Jenkins -> 全局工具配置 ,或者直接访问:http://192.168.88.44:8080/configureTools,找到SonarQube Scanner
配置项然后点击SonarQube Scanner 安装

jenkins-configure-tools-sonarqube-scanner.png

为了省事儿,这里我们选择自动安装,版本选择2.8

以上各个配置项,记得点击保存按钮

三、Jenkins构建Job配置

如果已经有了Maven+Java项目的构建Job直接选择配置即可,如果没有可以参考:https://ken.io/note/jenkins-maven-git-java-integration ,添加一个Maven+Java项目的构建任务。

参考:https://ken.io/note/jenkins-maven-git-java-integration

1、添加SonarQube Scanner

在Post Steps配置项中点击:Add post-build step,然后选择:Execute SonarQube Scanner

jenkins-job-poststeps-add-sonarqube-scanner.png

2、配置SonarQube Scanner

jenkins-job-poststeps-config-sonarqube-scanner.png

这里我们只需要在Analysis properties中配置sonar扫描的参数即可

sonar.projectKey=io.ken.tutorial.helloworld
sonar.projectName=helloworld
sonar.projectVersion=1.0
sonar.sources=src
sonar.java.binaries=target/classes
sonar.language=java

参数说明:

参数项 说明
sonar.projectKey 项目Key,需要唯一,建议使用GroupId+ArtifactId
sonar.projectName 项目名称,跟ArtifactId保持一致即可
sonar.projectVersion 项目版本,跟pom.xml保持一致即可
sonar.sources 源码目录,Java项目默认就是src,如果项目有多个module,那就需要配置为{moduleDirectory}/src
sonar.java.binaries 编译产出的classes目录,如果项目有多个module,那就需要配置为{moduleDirectory}/target/classes

3、构建&扫描

完成以上SonarQube Scanner配置,就可以进行项目构建,构建成功后,访问SonarQube,将在项目列表看到扫描的结果:

jenkins-sonarqube-scan-result.png

如果构建失败,可能是访问SonarQube Server出现了问题,或者SonarQube Scanner配置的有问题,具体可以查看Jenkins构建Job的控制台输出

四、备注

1、附录

  • https://ken.io/note/centos7-jenkins-install-tutorial
  • https://ken.io/note/sonarqube-install-and-code-scan-tutorial
  • https://ken.io/note/jenkins-maven-git-java-integration

Ken的杂谈

本文由 ken.io 创作,采用CC BY 3.0 CN协议 进行许可。 可自由转载、引用、甚至修改,但需署名作者且注明出处。

工具 Solution CI/CD

随笔目录


    © Copyright 2012-2025 Ken的杂谈

    豫ICP备10025012号

    ASP.NET Core(6.0) on Linux