sonarqube+sonar-scanner+jenkins安装配置
一:数据库(postgresql)安装配置及数据初始化
二:sonarqube安装配置
三:sonar-scanner安装配置
四:sonar与Jenkins集成
五:项目构建中配置sonar-scanner
一:安装及配置postgresql
安装参考:https://note.youdao.com/s/K6PAcTe8
创建用户,库及授权
psql -U postgres
postgres=# create database sonar;
CREATE DATABASE
postgres=# create user sonar;
CREATE ROLE
postgres=# alter user sonar with password 'hecom2021';
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
下载地址:https://www.sonarqube.org/downloads/ 根据需求选择适合的版本,此次选择7.8
unzip sonarqube-8.6.1.40680.zip
修改系统参数
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下
三:安装配置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/** #检测中排除的测试源文件(排除的源文件不参与检测)
修改完毕保存后进行构建
可查看分析结果