SonarQube安装教程
1. 下载安装包
下载sonar
SonarQube 支持的数据库有:PostgreSQL,Microsoft SQL Server,Oracle,
注意7.9版本已经不对MySql进行官方的支持了,如果执意要用 Mysql 可能会遇到很多坑(我就被坑的不轻)。当然有的朋友想用Mysql数据库,那么可以选择安装 7.7 以下版本(包括7.7)
官方网站:https://www.sonarqube.org/
官方文档地址:https://docs.sonarqube.org/latest/
下载地址:https://www.sonarsource.com/products/sonarqube/downloads/historical-downloads/
若要下载别的版本可参考:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip修改链接中版本号即可
下载汉化包
下载地址https://github.com/xuhuisheng/sonar-l10n-zh/releases
各版本对应关系
2. 上传至服务器并解压
1. 上传SonarQube
2. 上传汉化包
将汉化的jar包上传至sonar安装目录下的extensions/plugins目录下,重启服务即可
注意:也可以先启动sonar服务,在配置中安装插件
3. 启动服务
使用自带的H2数据库,使用默认配置即可启动,注意不要使用root用户启动,因为sonar关联的es等无法使用root用户启动
进入cd /opt/sonar/sonarqube-7.7/bin/linux-x86-64/下,执行sonar.sh即可启动
默认端口为9000,例如访问lcalhost:9000/
即可启动
若启动报错可检查logs文件下的日志,检查顺序:sonar.log -> es.log -> web.log
4. 执行代码扫描(maven方式)
访问sonar首页,按照提示一步步来即可
- 创建新项目
- 设置令牌
- 分析项目(使用maven方式)
mvn sonar:sonar \
-Dsonar.projectKey=test \
-Dsonar.host.url=http://39.174.82.249:9000 \
-Dsonar.login=2fb6c8f558714ea5a368156822b3770c1c5d5e8b
然后进入到要扫描的代码目录,执行上面的maven命令即可,执行完毕后在SonarQube页面即可看到扫描结果
注:
上面的命令中有些是固定的信息,如果每次执行扫描都需要输入则显的很麻烦,这里我们可以将某些信息配置到maven的setting.xml
中
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://127.0.0.1:9000</sonar.host.url>
<sonar.login>7a13de184fe9d79c59e24062d0065bd87b7064e9</sonar.login>
</properties>
</profile>
以后直接执行mvn sonar:sonar -Dsonar.projectKey=test
即可。甚至mvn sonar:sonar
都可以,SonarQube会自动以maven的坐标为项目key去创建项目
扩展
1. 使用Mysql数据库
- 创建数据库,创建用户
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
create user 'sonar'@'localhost' identified by 'sonar';
grant all on sonar.* to 'sonar'@'localhost';
# 刷新用户权限
FLUSH PRIVILEGES;
- 编辑soanr的conar.properties配置文件,位于安装位置的conf目录下
sonar.host.url=http://localhost:9090
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
注意:
- 7.7之后的版本(不含7.7)已经不支持Mysql,且7.7版本不支持MySQL8.0(启动时建表报错),注意MySQL版本的选择
- conar.properties中也可以配置sonar的端口、访问路径等配置;若简单使用则勿需过多配置,使用默认配置即可
2. SonarQube三种代码扫描方式
参考:https://blog.csdn.net/backbug/article/details/114977715