sonarqube+sonar-scanner+jenkins安装配置

一:数据库(postgresql)安装配置及数据初始化

二:sonarqube安装配置

三:sonar-scanner安装配置

四:sonar与Jenkins集成

五:项目构建中配置sonar-scanner

一:安装及配置postgresql

安装参考:有道云笔记

创建用户,库及授权

psql -U postgres

postgres=# create database sonar;

CREATE DATABASE

postgres=# create user sonar;

CREATE ROLE

postgres=# alter user sonar with password '***********';

ALTER ROLE

postgres=# alter role sonar createdb;

ALTER ROLE

postgres=# alter role sonar superuser;

ALTER ROLE

postgres=# alter role sonar createrole;

ALTER ROLE

postgres=# alter database sonar owner to sonar;

ALTER DATABASE

postgres=# \l

数据库列表

名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限

-----------+----------+----------+-------------+-------------+-----------------------

postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

sonar | sonar | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +

| | | | | postgres=CTc/postgres

(4 行记录)

postgres=# \du

角色列表

角色名称 | 属性 | 成员属于

----------+--------------------------------------------+----------

postgres | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {}

sonar | 超级用户, 建立角色, 建立 DB | {}

下载之前需了解jdk版本与sonarqube版本的兼容性,sonarqube7.8及以下版本与jdk8兼容,sonarqube7.9及以上版本需使用jdk11

另需了解sonarqube与sonar-scanner的版本兼容性,如下图了解

二:安装配置sonarqube

下载地址:Download | SonarQube 根据需求选择适合的版本,此次选择7.8

unzip sonarqube-7.8.zip

useradd sonar

chown -R sonar:sonar sonarqube-7.8

修改系统参数

vim /etc/sysctl.conf

末尾添加:

vm.max_map_count=262144

使生效:

sysctl -p

修改配置文件

打开注释修改以下内容:

vim conf/sonar.properties

sonar.jdbc.username=sonar

sonar.jdbc.password=hecom2021

sonar.jdbc.url=jdbc:postgresql://10.0.0.148/sonar #写真实IP地址,写localhost会有连接报错

sonar.web.host=0.0.0.0

sonar.web.port=9000

#配置ES存储目录

[root@Test-jenkins-dukang alidata1]# mkdir -p es-sonarqube/data

[root@Test-jenkins-dukang alidata1]# mkdir -p es-sonarqube/temp

[root@Test-jenkins-dukang alidata1]# chown -R sonar:sonar es-sonarqube

vim conf/sonar.properties

sonar.path.data=/alidata1/es-sonarqube/data

sonar.path.temp=/alidata1/es-sonarqube/temp

各版本汉化包下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases

下载后放到sonarqube/extension/plugins下

启动:

su sonar

bin/linux-x86-64/sonar.sh start

三:安装配置sonar-scanner

下载地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip 可自行选择版本

unzip sonar-scanner-cli-3.3.0.1492-linux.zip

修改配置文件打开注释

vim conf/sonar-scanner.properties

sonar.host.url=http://localhost:9000

#----- Default source code encoding

sonar.sourceEncoding=UTF-8

添加全局环境变量

vim /etc/profile 添加以下内容

export PATH="$PATH:/alidata1/sonar-scanner-3.3/bin"

使生效

source /etc/profile

四:sonar与jenkins集成

1.jenkins安装插件

安装SonarQube Scanner插件,如在线安装失败,可手动安装

2.SonarQube中生成Token,用于jenkins调用sonarqube代替用户密码验证

生成后自行保存(只显示一次)

3.jenkins创建凭据

需注意凭据类型

4.配置sonarqube信息

在系统配置中添加以下内容:

5.配置sonar-scan信息

在全局工具配置中添加以下内容:

五:项目构建配置

1.构建项目设置中添加以下模块

2.填写自己项目相关信息

sonar.projectKey=paas-metadata-service #sonar平台中相对应项目的key

sonar.projectName=paas-metadata-service #sonar平台中相对应项目的名字

sonar.projectVersion=1.0

sonar.sources=./paas-metadata-service/src #sonar检测的源文件目录,‘.’表示当前根目录下的所有文件目录;包含主要源文件的目录的逗号分隔路径

sonar.java.binaries=./paas-metadata-service/target/classes #编译打包生成包的目录

sonar.langure=java

sonar.sourceEncoding=UTF-8

可根据需求添加以下参数

sonar.exclusions=**/*_test.go,**/vendor/** #检测中排除的源文件(排除的源文件不参与检测,一般排除单元测试文件、配置文件等)

sonar.tests=. #sonar检测的测试文件目录,‘.’表示当前根目录下的所有文件目录;包含测试源文件的目录的逗号分隔路径。从构建系统中读取Maven,Gradle,MSBuild项目。否则默认为空。

sonar.test.inclusions=**/**_test.go #检测中的测试源文件(指定单元测试文件)

sonar.test.exclusions=**/vendor/** #检测中排除的测试源文件(排除的源文件不参与检测)

修改完毕保存后进行构建

可查看分析结果

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐