Jenkins集成SonarQube环境搭建教程

Jenkins是业界知名的持续集成工具,使用Jenkins可以帮助我们实现自动打包,持续集成。本文的主题是假设你已经搭建好了Jenkins,并且服务器是linux,现需要集成 SonarQube 该怎么做。

一、linux安装SonarQube

先看下一个单实例 SonarQube 的架构图,整体包含三个部分 Scanner,SonarQube Server,Database Server。
在这里插入图片描述

官网对于三者有详细解释。
在这里插入图片描述
简单来说Scanner负责扫描你的代码,并将扫描后的结果发送给SonarQube Server,Scanner并不分析代码。

SonarQube Server 内置了Elasticsearch用于搜索,并提供计算引擎负责执行代码质量分析,并将分析结果存储于数据库。

由于高版本的 SonarQube 依赖于postgresql数据库,所以先安装postgresql。

1.安装postgresql数据库

对于postgresql 的安装实在不建议根据官网的指引通过 yum 安装,实测因yum源的问题大部分情况都无法安装,这里通过直接下载二进制包来安装。从此处选择10.19版本下载 postgresql安装包

下载完成后,执行以下五个步骤:
1)将压缩包解压至:/usr/loca/pgsql/pgsql,创建数据存储目录:/usr/loca/pgsql/pgsql_data在这里插入图片描述
2)创建Linux用户: postgres / 12345678
3)切换上一步创建的用户 su - postgres
4)以postgres用户启动数据库:bin/pg_ctl -D /usr/loca/pgsql/pgsql_data -l logfile start
5)使用命令连接:/usr/local/pgsql/pgsql/bin/psql -h 127.0.0.1 -d postgres -U postgres -p 5432
6)参考下图更新postgres 用户密码为:postgres / postgres
7)参考下图创建数据库sonar以存储 SonarQube 的分析结果
在这里插入图片描述
更详细的敲命令步骤参考这里 linux下安装postgresql-10 全网最详细的步骤安装,我这里就省掉了。

2.安装SonarQube Server

1)下载jdk11并解压到指定目录:

tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz -C /usr/local/

2)从官网下载 SonarQube Server 安装包,并解压到/usr/local/sonarqube:

unzip sonarqube-8.9.1.44547.zip -d /usr/local/

3)更新配置文件/usr/local/sonarqube/conf/sonar.properties :

sonar.jdbc.username=postgres
sonar.jdbc.password=postgres
sonar.jdbc.url=jdbc:postgresql://localhost/sonar

4)更新配置文件/usr/local/sonarqube/conf/wrapper.conf :

wrapper.java.command=/usr/local/jdk-11/bin/java

5)创建Linux用户:

adduser sonarUser
passwd sonarUser

6)赋值sonarqube目录相关权限:

chmod 777 -R sonarqube

7)更改sonar用户组:

chown -R sonarUser:sonarUser sonarqube

8)以启动sonarUser用户启动sonarqube server:

su - sonarUser
cd /usr/local/sonarqube/bin/linux-x86-64/
./sonar.sh start
./sonar.sh status

3.安装sonar scanner

下载压缩包并解压到 /usr/local/sonar-scan-4.6 即可。

浏览器打开http://your-host:9000,过admin/admin即可访问成功。

二、Jenkins集成SonarQube

假设现在你已经搭建好了Jenkins,那么集成SonarQube将相当简单

1.安装SonarQube Scanner插件

通过管理员账户admin登入Jenkins,进入系统管理-插件管理,搜索 sonarqube scanner 进行安装,重启生效。

2.配置SonarQube连接信息

首先登入SonarQube,进入 配置 > 权限 > 用户 > 令牌,生成一个token,以后Jenkins插件都将通过此token访问SonarQube。
在这里插入图片描述

回到Jenkins,进入 系统管理 > Manage Credentials,创建全局凭据,类型选择Secret Text,Secret填写刚刚的token,ID自定义。
在这里插入图片描述

再次进入 系统管理 > 系统配置,选择SonarQube Servers,配置SonarQube的连接地址和token。
在这里插入图片描述
再次进入 系统管理>全局工具配置,选择SonarQube Scanner,配置你服务器上的SonarQube Scanner安装路径。
在这里插入图片描述
到此Jenkins集成SonarQube环境搭建成功。

三、使用刚刚搭建的环境进行代码扫描

选择一条任务,点击 配置 > 增加构建步骤,然后在Analysis properties中添加如下的配置:

sonar.projectKey=demo-project
sonar.projectName=demo-project
sonar.projectVersion=8.9
sonar.sources=$WORKSPACE
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.java.binaries=$WORKSPACE

保存后,点击立即构建,等待构建完成后,即可在SonarQube的web控制台看到刚刚扫描的项目。

猜你喜欢

转载自blog.csdn.net/mryang125/article/details/121795490