0
点赞
收藏
分享

微信扫一扫

linux搭建SonarQube代码质量平台_Oracle 最新详细版本


文章目录

  • ​​一、最低配置要求​​
  • ​​1. JDK版本要求​​
  • ​​2. 数据库版本要求​​
  • ​​3. 支持浏览器版本​​
  • ​​二、软件下载安装​​
  • ​​2.1. 软件列表总览​​
  • ​​2.2. jdk11下载​​
  • ​​2.3. sonarqube下载​​
  • ​​2.4. sonar-scanner-cli​​
  • ​​2.5. Oracle 驱动​​
  • ​​三、安装实战​​
  • ​​3.1. JDK sonar-scanner​​
  • ​​3.2. sonarqube​​
  • ​​3.3. oracle驱动​​
  • ​​3.4. 启动sonar​​
  • ​​3.4. 登录验证​​
  • ​​3.5. Sonarqube 中文插件专栏​​
  • ​​四、 集成oracle数据库​​
  • ​​4.1. 创建命名空间​​
  • ​​4.2. 创建sonarqube用户及赋予权限​​
  • ​​4.3. 配置数据库信息​​
  • ​​4.3. 重新启动​​
  • ​​4.4. 浏览器验证​​
  • ​​4.5. 数据库验证​​
  • ​​五、企业扫描实战​​
  • ​​六、异常汇总及技巧​​
  • ​​6.1. 操作技巧​​
  • ​​6.2. root启动sonarqube失败​​
  • ​​6.3. node validation exception​​


使用sonarqube8.3 搭建企业级代码质量管控平台

一、最低配置要求
1. JDK版本要求

​​https://docs.sonarqube.org/latest/requirements/requirements/​​sonarqube8.3 :JDK版本11及以上,支持 Oracle版本有(19C
18C 12C 11G)

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_数据库

2. 数据库版本要求

Oracle案例:

支持数据库

版本

编码要求

Oracle

19C

18C

12C

11G

Must be configured to use a UTF8-family charset (see NLS_CHARACTERSET)

必须编码为UTF-8

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_java_02

支持数据库

版本

编码要求

PostgreSQL

12

11

10

9.3–9.6

Must be configured to use UTF-8 charset

必须编码为UTF-8

还支持Microsoft SQL Server,官网声明高版本SonarQube暂不适配Mysql数据库,建议自己可以尝试一下mysql数据库是否支持。
参考链接:
​​​Sonarqube Mysql​​

3. 支持浏览器版本

浏览器

版本

Microsoft Internet Explorer

IE 11

Microsoft Edge

Latest

Mozilla Firefox

Latest

Google Chrome

Latest

Safari

Latest

二、软件下载安装
2.1. 软件列表总览

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_java_03

2.2. jdk11下载

官网地址:​​https://www.oracle.com/java/technologies/javase-jdk11-downloads.html​​

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_数据库_04


注:如果不能下载,注册一个账户即可

2.3. sonarqube下载

sonarqube官网

​​https://www.sonarqube.org/downloads/​​ 默认下载最新版

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_oracle_05


附上历史版本下载说明:

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_SonarQube_06


注:建议优先下载最新版本

2.4. sonar-scanner-cli

sonar-scanner-cli

​​https://binaries.sonarsource.com/Distribution/sonar-scanner-cli​​

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_SonarQube_07

2.5. Oracle 驱动

ojdbc8-12.2.0.1

地址:明天再补充下载链接

三、安装实战
3.1. JDK sonar-scanner

#解压jdk、sonar-scanner
tar -zxvf jdk-11.0.7_linux-x64_bin.tar.gz -C /app/
unzip sonar-scanner-cli-4.3.0.2102-linux.zip

#配置环境变量
vim /etc/profile
添加内容如下:

#java environment
export JAVA_HOME=/app/jdk-11.0.7
#配置sonar-scanner
export SONAR_RUNNER_HOME=/app/sonar-scanner-4.3.0
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin:$SONAR_RUNNER_HOME/bin

#刷新环境变量
source /etc/profile

3.2. sonarqube

#解压sonarqube
unzip sonarqube-8.3.1.34397.zip

#创建sonar用户并设置密码
useradd sonar
passwd sonar
123456
123456

#赋予sonar用户目录权限
chown sonar.sonar /app/sonarqube-8.3.1 -R

注:创建sonar用户的原因是,启动sonarqube内部会启动elasticsearch,而elasticsearch不允许root用户启动,因此,启动sonarqube需要单独创建sonar用户来操作,只要不是root用户即可。

3.3. oracle驱动

复制到指定路径下面即可

cp ojdbc8-12.2.0.1.jar /app/sonarqube-8.3.1/extensions/jdbc-driver/oracle/

3.4. 启动sonar

#切换至sonar用户
su - sonar

#进入执行脚本目录
cd /app/sonarqube-8.3.1/bin/linux-x86-64/
#启动sonar
./sonar.sh start
#查看sonar运行状态
./sonar.sh status
#监控sonar启动日志(日志会有好几个,重要的3个,先后生成依次是:sonar.log->es.log->web.log)
tail -f /app/sonarqube-8.3.1/logs/web.log

3.4. 登录验证

​​http://192.168.0.104:9000​​ 账号:admin

密码:admin

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_oracle_08

3.5. Sonarqube 中文插件专栏

​​​​

上面演示的是7.8版本,如果是8.3版本操作一样,第一种就是你在线安装,第二种就是去Github把对应版本的中文插件下载到本地,在托到指定目录即可。

例如:

在线安装插件演示图例:

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_oracle_09


linux搭建SonarQube代码质量平台_Oracle 最新详细版本_数据库_10

单独下载插件演示:

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_oracle_11


linux搭建SonarQube代码质量平台_Oracle 最新详细版本_SonarQube_12

/app/sonarqube-8.3.1/extensions/plugins

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_java_13

四、 集成oracle数据库
4.1. 创建命名空间

如果是docker安装的oracle请参考下面例子

--创建明明空间 sonarqube
CREATE TABLESPACE sonarqube
DATAFILE '/home/oracle/app/oracle/oradata/helowin/sonarqube.dbf' SIZE 2018M
AUTOEXTEND ON NEXT 1024M MAXSIZE 20480M;

如果是不使用docker安装的oracle

CREATE TABLESPACE sonarqube
DATAFILE '/u01/oracle/oradata/sonar/sonarqube.dbf' SIZE 2018M
AUTOEXTEND ON NEXT 1024M MAXSIZE 20480M;

注:参数中命名空间、大小均自定义

4.2. 创建sonarqube用户及赋予权限

--创建sonarqube 用户,密码是sonarqube 
CREATE USER sonarqube IDENTIFIED BY sonarqube;
--给用户赋予权限
GRANT CONNECT, RESOURCE ,DBA TO sonarqube;

4.3. 配置数据库信息

cd /app/sonarqube-8.3.1/conf
vim sonar.properties

#添加数据库信息
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:oracle:thin:@192.168.0.104:1521/helowin
sonar.sorceEncoding=utf-8

注:端口1521、服务名helowin、编码utf-8、用户名、密码

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_java_14

4.3. 重新启动

#切换sonar用户
su - sonar
#进入执行脚本目录
cd /app/sonarqube-8.3.1/bin/linux-x86-64/
#启动soanr
./sonar.sh start
#监控sonar启动日志轨迹,便于快速定位和分析问题(建议大家养成这样的习惯)
tail -f /app/sonarqube-8.3.1/logs/web.log

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_数据库_15

4.4. 浏览器验证

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_数据库_16


linux搭建SonarQube代码质量平台_Oracle 最新详细版本_java_17

4.5. 数据库验证

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_数据库_18


linux搭建SonarQube代码质量平台_Oracle 最新详细版本_数据库_19

五、企业扫描实战

1.创建一个扫描用户的家目录,用来存放项目代码和配置文件的目录
2.在此目录下面配置:
一个配置文件
一个执行扫描脚本
一个存放代码目录

sonar-project.properties

# 项目key 用于标识项目唯一性
sonar.projectKey=fis
# 项目名称
sonar.projectName=fis
# 项目扫描的默认版本
sonar.projectVersion=1.0
# 扫描项目的目录
sonar.java.binaries=fis
# web账号
sonar.login=admin
# web 密码
sonar.password=admin
# 扫描项目的源码目录
sonar.sources=fis
# 扫描项目的编码设置
#sonar.sourceEncoding=UTF-8
sonar.sourceEncoding=GBK

执行扫描脚本sonar-scanner.sh

sonar-scanner

赋予扫描脚本可执行那个权限

chmod +x sonar-scanner.sh

说明一下脚本执行原理:一般在​​/app/sonar-scanner-4.3.0/conf​​目录下面配置项目信息

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_java_20


进入​​/app/sonar-scanner-4.3.0/bin​​目录执行sonar-scanner脚本即可,

linux搭建SonarQube代码质量平台_Oracle 最新详细版本_SonarQube_21


上面场景,只有一个项目是可以的,但是如果有几百个用户,那对应几百个项目,怎么办的,为每一个用户创建一个扫描目录,在目录下面配置项目信息和执行脚本加上扫描目录即可实现。

六、异常汇总及技巧
6.1. 操作技巧

在启动项目之前,打开2个窗口,一个是启动sonar的窗口,另一个是生成日志的窗口,这样想做的好处就是,可以监控项目从启动到启动的成功以及操作页面触发执行的操作,在日志中可以实时的监控;发生异常信息,也可以快速的定位和分析,从而提高解决问题的效率。

有时候不会生成web.log如果遇到,说明启动sonarqube失败,根据启动日志,分析日志的关键性信息,定位导致异常发生的原因。

6.2. root启动sonarqube失败

在操作8.3版本中遇到了3个问题,
问题1:使用root启动sonarqube失败,可以根据​​​/app/sonarqube-8.3.1/logs/es.log​​​日志可知。
解决方案:
1.创建用户
2.清空 /app/sonarqube-8.3.1/data 、/app/sonarqube-8.3.1/temp、/app/sonarqube-8.3.1/ logs目录下生成的目录以及文件
3.切换到新创建的用户重新启动sonar服务即可

6.3. node validation exception

这个异常具体处理请参考:​​node validation exception 的问题处理​​


举报

相关推荐

0 条评论