# 1. 环境
- jdk
- sonarqube7.8
- sonar-scanner4.5.0
去官方地址 https://www.sonarqube.org/downloads/ 下载对应的 sonarqube
版本,本文用的版本 SonarQube 7.8
yum install java
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.5.0.2216-linux.zip
1
2
3
2
3
# 2. 解压设置环境变量
我的在usr/local下,uzip解压 mv等操作略过 .
打开之后在末尾添加,以下只是参考,只要放到环境变量就行
vim /etc/profile
source /etc/profile
1
2
2
export SONAR=/usr/local/src/sonar-scanner-4.5.0.2216-linux
export PATH=${SONAR}/bin:$PATH
1
2
2
# 3. mysql数据源配置
/usr/local/src/sonarqube-7.8/conf/sonar.properties
1
sonar.jdbc.url=jdbc:mysql://122.152.211.101:12306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=dbuser
sonar.jdbc.password=Lg5201314
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
1
2
3
4
2
3
4
# 4. 启动sonarqube
/usr/local/src/sonarqube-7.8/bin/linux-x86-64/sonar.sh start
1
我这里已经启动了。
直接在浏览器访问 http://106.12.203.184:9002/ 即可看到页面,我这边设置了9002端口。默认账号密码admin/admin
# 5. 更好的启动sonarqube
vim /etc/systemd/system/sonar.service
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=forking
## 可以具体路径再改下
ExecStart=/usr/local/src/sonarqube-7.8/bin/linux-x86-64/sonar.sh start
ExecStop=/usr/local/src/sonarqube-7.8/bin/linux-x86-64/sonar.sh stop
User=sonaruser
Group=Ligan12.
Restart=always
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
sonarqube支持以下命令
console | start | stop | force-stop | restart | status | dump
可以通过以下语句控制
systemctl daemon-reload
systemctl start sonar.service
systemctl stop sonar.service
systemctl status sonar.service
1
2
3
2
3
# 6. 如果有报错: Process exited with exit value [es]: *
可以追踪sonarqube下的log文件,我这里经过定位是启动es的时候用root启动了
需要 adduser sonaruser
;passwd sonaruser
;然后 chown -R sonaruser:sonaruser/sonar_path
即可
然后启动用 sonaruser
启动即可成功。
# 7. 如果有报错: Java heap space
export SONAR_SCANNER_OPTS="-Xmx1028m"
set SONAR_SCANNER_OPTS=-Xmx512m
1
2
2
# 8. 如果有报错: WrapperSimpleApp: Encountered an error running main:xx
2020.12.14 09:49:24 WARN app[][o.s.application.App] SonarQube will require Java 11+ starting on next version
2020.12.14 09:49:24 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/src/sonarqube-7.8/temp
WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedException: /usr/local/src/sonarqube-7.8/temp/conf/es/elasticsearch.yml
java.nio.file.AccessDeniedException: /usr/local/src/sonarqube-7.8/temp/conf/es/elasticsearch.yml
1
2
3
4
5
2
3
4
5
删除 /usr/local/src/sonarqube-7.8/temp
这个目录就好,如果还是有问题,看下 web.log 日志文件。
# 9. 引入具体项目
需要在你的检测目录下建立一个配置文件即可,sonar-project.properties
内容参考如下:
# Sonar项目标识,在 SonarQube实例下必须唯一
sonar.projectKey=rxst2
# 在 SonarQube UI 中显示的项目名称
sonar.projectName=rxst2
# 项目版本
sonar.projectVersion=1.0.9
# 项目代码与 sonar-project.properties 文件的相对路径
sonar.sources=.
# 代码文件的编码
sonar.sourceEncoding=UTF-8
# 排除不参与代码分析的文件或目录
sonar.exclusions=.idea/**/*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 10. 执行scanner
sonar-scanner -Dsonar.projectKey=rxst2 -Dsonar.sources=. -Dsonar.host.url=http://106.12.203.184:9002 -Dsonar.login=aabbc6f472f7bbf8485882cfb246ca04e8b37fac
1
大概等一段时间,就可以在web UI 页面查看到结果集了。
##参考资料
- sonarqube For PHP 代码质量管理 (opens new window)
- 安装sonarQube代码质量管理平台分析PHP代码 (opens new window)
- 静态代码扫描平台SonarQube简介 (opens new window)
- SonarQube部署及代码质量扫描入门教程 (opens new window)
- SonarQube:代码静态检查 (opens new window)
- 代码静态扫描工具sonar介绍 (opens new window)
- SonarQube代码质量管理平台安装与配置 (opens new window)
- SonarQube代码质量检查工具 (opens new window)
- linux安装sonarQube的安装、配置与使用 (opens new window)
- 基于SonarQube代码质量检查工具总结 (opens new window)
- Linux安装SonarQube和sonar-scanner详细安装及配置 (opens new window)
- 静态代码扫描工具使用教程 - SonarQube+SonarScanner (opens new window)
- sonarqube 分析php项目 (opens new window)
- SonarQube 搭建代码质量管理平台(一) (opens new window)
- SonarQube 搭建代码质量管理平台(二) (opens new window)
- PHPStorm使用Sonarqube代码分析规则进行编辑器代码规范提醒 (opens new window)
- sonarqube-7.8 mysql5.7.29 搭建与安装 (opens new window)
- sonarqube环境搭建采坑详解 (opens new window)
- [sonar启动 Process exited with exit value es 143](sonar启动 Process exited with exit value [es]: 143)
- SonarQube搭建的各种问题 (opens new window)