代码扫描工具SonarQube,想必大家也有了解,就是那种不明觉厉的存在,最近刚好有需求,需要自己搭建,下面就给大家记录下搭建的过程。
不了解的,可以先看看 https://github.com/SonarSource/sonarqube
有一个初步认识。
话不多说,开干!
一,准备工作
1,数据库:mysql, postgressql都可以,不过最新版本的已经不能用mysql了, 所以用惯了mysql的同学,可以去选之前的稳定版本的sonarQube安装,后面再讲。
2,JDK:用JDK8就可以,需要加入到环境变量中去,不多说,dddd。
3,Maven:版本不限,我用的是最新的3.9.3,也是要加到环境变量。
二,下载SonarQube
下载链接:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip
SonarQube 7.8 是最后一个支持 MySQL 的版本,也是最后一个支持 jdk1.8 的版本,也就是说如果要使用 7.9 及以上的版本,SonarQube 的数据库就不能为 MySQL,并且需要 jdk11,但是公司要求要使用 MySQL,所以选择了 SonarQube 7.8,下面是具体的安装步骤。
注意 SonarQube 7.8 只支持数据库 5.6 以及上 8.0 以下的版本,其他版本的MySQL不支持。
三,修改配置
1, 修改数据库配置
下载好之后,解压,然后进到/sonarqube/sonarqube-7.8/conf目录下
vi sonar.properties
找到jdbc相关的配置
sonar.jdbc.username=root
sonar.jdbc.password=xxxxsonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
改成你的配置就好了, 同时记得在上面的数据库里建一个schema是sonar的数据库
2,修改系统进程最大打开文件数
vim /etc/security/limits.conf
在尾部添加以下内容:
如果已经有了,就忽略,通常是已经有了
* soft nofile 65536
* hard nofile 131072
* soft nproc 65535
* hard nproc 65535
3,修改 vm.max_map_count 的大小
vim /etc/sysctl.conf
在尾部添加以下内容:
vm.max_map_count=655360
让配置生效:执行命令 sysctl -p
4,创建用户
不支持用root账号启动,否则会启动报错。
创建一个sonar普通用户
useradd sonar
给用户授权SonarQube目录的权限
chown -R sonar:sonar /home/sonarqube/sonarqube-7.8/
四,启动项目
进入到/sonarqube/sonarqube-7.8/bin/linux-x86-64目录
sh sonar.sh
看日志在:/sonarqube/sonarqube-7.8/logs
tail -f sonar.log
因为启动的时候,要创建mysql数据库表,要安装es,所以第一次启动比较慢,直到看到以下日志,说明已经启动好了
五,访问SonarQube的web端
默认端口是9000, 账号密码是:admin/admin
地址:http://安装sonarqube的服务器IP:9000
如果是云服务器,那就就请在安全组中放行 9000 端口。
firewall-cmd --permanent --add-port=9000/tcp firewall-cmd --reload
温馨提示:SonarQube依赖于ES,ES会占用大量的计算机,如果计算机配置太低会启动失败,我的配置是4核4g,能正常启动。 启动失败具体的问题请查看 /sonarqube/sonarqube-7.8/logs/ 下的日志文件。
六,本地扫描代码
1,修改本地Maven配置
打开本地的Maven的settings文件,在profiles节点下新增profile
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.login>admin</sonar.login>
<sonar.password>admin</sonar.password>
<sonar.host.url>http://SonarQube服务器IP:9000</sonar.host.url>
</properties>
</profile>
2, 执行maven命令,扫描代码
进到你要扫描的项目目录下,执行命令行命令
mvn sonar:sonar
3, 查看扫描结果
码字不易,记得点赞关注哟