文章目录
- 一、安装声明
- 二、下载软件
- 2.1. sonarqube
- 2.2. sonar-scanner-cli
- 三、SonarQube实战
- 3.1. 解压
- 3.2. 配置
- 3.3. 环境变量
- 3.4. 启动Sonarqube
- 3.5. 访问Sonarqube
- 四、SonarQube 整合Oracle
- 4.1. 创建命名空间
- 4.2. 创建用户和赋予权限
- 4.3. 添加数据库配置
- 4.4. 添加Oracle数据库驱动
- 4.5. 线上扫描配置
- 五、sonar整合 sonar-scanner
- 5.1. 创建项目扫描的目录
- 5.2. 新建 sonar-project.properties
- 5.3. 创建扫描脚本
- 5.4. 赋予可执行权限
- 5.5. 运行脚本
- 5.6. 访问web
- 六、搭建异常汇总
- 6.1. 编码不统一
- 6.2. SonarQube启动报错
- 6.3. SonarQube以root用户启动
一、安装声明
sonarqube8.3 最低配置要求:
二、下载软件
2.1. sonarqube
sonarqube官网
https://www.sonarqube.org/downloads/
注:建议优先下载最新版本
2.2. sonar-scanner-cli
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli
三、SonarQube实战
前提:提前把jdk安装好
3.1. 解压
unzip sonarqube-7.6.zip -C /app/
unzip sonar-scanner-cli-3.3.0.1492-linux.zip -C /app/
3.2. 配置
重命名 sonar-scanner
mv sonar-scanner-3.3.0.1492-linux sonar-scanner-3.3
3.3. 环境变量
#set java environment
export JAVA_HOME=/app/jdk1.8.0_144
export SONAR_RUNNER_HOME=/app/sonar-scanner-3.3
export SONAR_SCANNER_OPTS="-Xmx22528m"
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.4. 启动Sonarqube
./app/sonarqube-7.6/bin/linux-x86-64/sonar.sh
3.5. 访问Sonarqube
http://localhost:9000/
四、SonarQube 整合Oracle
4.1. 创建命名空间
CREATE TABLESPACE sonarqube
DATAFILE '/u01/oracle/oradata/sonar/sonarqube.dbf' SIZE 2018M
AUTOEXTEND ON NEXT 1024M MAXSIZE 20480M;
4.2. 创建用户和赋予权限
#创建sonarqube 用户,密码是sonarqube
CREATE USER sonarqube IDENTIFIED BY sonarqube;
#给用户赋予权限
GRANT CONNECT, RESOURCE ,DBA TO sonarqube;
4.3. 添加数据库配置
#编辑配置文件
vim /sonarqube-7.6/conf/sonar.properties#Oracle数据库连接配置
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:oracle:thin:@localhost:1521/sonar
sonar.sorceEncoding=gbk
4.4. 添加Oracle数据库驱动
在/sonarqube-7.6/extensions/jdbc-driver/oracle目录下面添加Oracle的数据库驱动包ojdbc8-12.2.0.1.jar
注:此驱动包线上测试通过一直用着
4.5. 线上扫描配置
sonar.web.javaOpts =-Xmx8192m -Xms512m -XX:MaxPermSize=8192m
sonar.ce.javaOpts =-Xmx8192m -Xms512m -XX:MaxPermSize=8192m
sonar.search.javaOpts =-Xmx8912m -Xms512m -XX:MaxPermSize=8192m
注:此配置根据服务器硬件配置按需配置
五、sonar整合 sonar-scanner
5.1. 创建项目扫描的目录
mkdir project_name
5.2. 新建 sonar-project.properties
# 项目key 用于标识项目唯一性
sonar.projectKey=lis_cx
# 项目名称
sonar.projectName=lis_cx
# 项目扫描的默认版本
sonar.projectVersion=1.0
# 扫描项目的目录
sonar.java.binaries=lis_cx
# web账号
sonar.login=admin
# web 密码
sonar.password=admin
# 扫描项目的源码目录
sonar.sources=lis_cx
# 扫描项目的编码设置
#sonar.sourceEncoding=UTF-8
sonar.sourceEncoding=GBK
5.3. 创建扫描脚本
vim sonar-scanner.sh
添加内容吐下:
sonar-scanner
5.4. 赋予可执行权限
chmod u+x sonar-scanner.sh
5.5. 运行脚本
./sonar-scanner.sh
5.6. 访问web
六、搭建异常汇总
6.1. 编码不统一
解决方案
oracle数据库字符编码utf-8改为ZHS16GBK
6.2. SonarQube启动报错
异常现象:
WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedExcepti:
解决方案:
https://gblfy.blog.csdn.net/article/details/103754821
6.3. SonarQube以root用户启动
声明:
1、SonarQube不能以root用户启动
2、如果误操作用root用户启动,再使用其他用户,导致SonarQube启动失败
3、如果jdk用户root用户安装的,sonar-scanner-3.3必须是root用户,不能为其他用户,否则sonar-scanner-3.3启动不起来
解决方案:
误操作用root用户启动,再使用其他用户,导致SonarQube启动失败
1、删除sonarqube-7.6/temp/下面的所有文件
2、删除sonarqube-7.6/logs/下面的所有文件
sonar-scanner启动异常,无权限操作:
修改sonar-scanner目录权限,和安装jdk的用户有关(默认root权限即可)