ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

sonarqube+sonar-scanner+jenkins安装配置及使用

2021-07-19 16:04:10  阅读:294  来源: 互联网

标签:UTF scanner sonarqube sonar jenkins postgres


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/** #检测中排除的测试源文件(排除的源文件不参与检测)

修改完毕保存后进行构建

可查看分析结果

标签:UTF,scanner,sonarqube,sonar,jenkins,postgres
来源: https://blog.csdn.net/weixin_45396564/article/details/118898075

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有