首先声明一点:mysql 版本要与 sonarsube 版本对应
本文档 mysql5.7 sonarsube7.8(据说 7.9 之后不支持 mysql)
1.基础环境搭建:
一键安装网站:https://oneinstack.com/auto/
wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --jdk_option 2 --db_option 2 --dbinstallmethod 1 --dbrootpwd Lz123456 --ssh_port 22 --reboot
安装 mysql5.7 jdk1.8 开放 ssh 22 端口(一键安装自动配置环境变量)
自动安装完成之后开放 mysql3306(其他端口也在这里面开放)注:阿里云也要配置端口规则
5 编辑防火墙,增加端口
vi /etc/sysconfig/iptables # 编辑防火墙配置文件
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
:wq! # 保存退出
systemctl restart iptables.service # 重启防火墙使配置生效
systemctl enable iptables.service # 设置防火墙开机启动
2.sonarqube 环境搭建
sonarqube 包下载地址:https://www.sonarqube.org/sonarqube-7-8/
通过 xftp 工具拉倒服务器上
unzip -d //usr/local/ sonarqube-7.8.zip
mv /usr/local/sonarqube-7.8 /usr/local/sonarqube
vim /usr/local/sonarqube/conf/sonar.properties
##增加下面的配置信息
#数据库url
sonar.jdbc.url=jdbc:mysql://ip地址:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
#数据库用户名
sonar.jdbc.username=sonar
#数据库密码
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8
#sonarweb登录账号以及密码
sonar.login=admin
sonar.password=admin
#注:不建议修改端口号
#应用端口号(默认9000)
sonar.web.port=9000
新增用户并授权文件夹
因为sonarqube和elasticsearch不允许root用户启动,所以得新增用户
## 创建普通用户
useradd sonarqube
passwd sonarqube
## 给普通用户授sonarqube的权限
chmod -R 777 /usr/local/sonarqube
## 修改elasticsearch.yml
vim /usr/local/sonarqube/elasticsearch/config/elasticsearch.yml
## 增加
network.host: 0.0.0.0
## 修改/etc/security/limits.conf文件,添加或修改如下行:
#<domain> <type> <item> <value>
#
* hard nofile 65536
* soft nofile 65536
root soft nproc 131072
root hard nproc 131072
## 修改 /etc/sysctl.conf 文件,添加如下行:(重启虚拟机生效)
vm.max_map_count=655360
##重启之后查看
sysctl -p
vm.max_map_count=655360
mysql创建sonar相关
进入mysql
mysql -uroot -p
Enter password:
创建sonar相关
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;
启动SonarQube
## 进入SonarQube的bin目录
cd /usr/local/sonarqube/bin/linux-x86-64/
## 切换sonarqube用户
su sonarqube
## 启动sonarqube
./sonar.sh start
启动成功
Starting SonarQube...
Started SonarQube.
可以查看日志看是否启动成功
cd /usr/local/sonarqube/logs
ls
## 日志文件 依次查看.log文件看是否启动报错
access.log ce.log es.log README.txt sonar.log web.log
sonarqube启动执行一会之后,去浏览器打开 ip地址:port进入页面。
使用和插件(离线安装)
使用配置的账户密码登录 login
admin
admin
中文插件
登录之后选择按下图步骤操作;
因为插件市场默认是最新的插件。所以插件的 github 下载往期版本(7.8)
下载后将jar包直接传输到服务器linux的sonarqube的插件目录下
## 插件目录
/usr/local/sonarqube/extensions/plugins/
导入之后在sonarqube用户下重启sonarqube:
cd /usr/local/sonarqube/bin/linux-x86-64
su sonarqube
./sonar.sh restart
重启之后就是中文版页面了。
cd /usr/local/sonarqube/bin/linux-x86-64
su sonarqube
./sonar.sh restart
外网 ip:端口号
直接访问网站登入之后创建项目
选中类型,本文是 java + maven
会得到一串码
得到码之后 mvn 命令运行
注意事项:先配置maven的sonar插件
配置分两种我只尝试过第一种
本地maven仓库setting.xml 添加
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- 配置 Sonar Host地址,默认:http://localhost:9000 -->
<sonar.host.url>
http://8.129.70.102:9000
</sonar.host.url>
<!-- 代码分析包括哪些文件需要分析,英文逗号分隔 -->
<sonar.inclusions>**/*.java,**/*.xml</sonar.inclusions>
</properties>
</profile>
</profiles>
进入maven项目目录执行mvn clean verify sonar:sonar
----------非必操作项
如果想制定sonar-maven-plugin插件版本 例如3.3.0.603版本 可以修改项目pom.xml
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.3.0.603</version>
</plugin>
</plugins>
</build>
也可以直接执行
mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar
结果:
大部分转载大佬:
https://www.sonarqube.org/sonarqube-7-8/