使用 sonarqube 对 java 项目代码进行扫描的时候,java 项目的版本不能低于 sonar 的编译版本。
sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk 1.11
1.下载压缩包
官网下载最新版压缩包:sonarqube-9.2.4.50792.zip
2.配置java环境
unzip openjdk-8u40-b25-linux-x64-10_feb_2015.tar.gz -C /usr/local
# cat /etc/profile.d/java.sh
#!/bin/bash
export JAVA_HOME=/usr/local/java-se-8u40-ri
export JRE_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
3.系统环境设置
解决sonar的ES无法启动问题:https://www.cnblogs.com/sanduzxcvbnm/p/15777723.html
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096
vim /etc/security/limits.conf
* - nofile 655360
* - nproc 655360
4.修改sonar配置,使用MySQL数据库,修改默认端口号
# 对mysql的版本要求:MySQL >=5.6 && <8.0
# 新创建用户sonar,设置密码为:sonar,创建sonarqube数据库,授权sonar用户访问sonarqube数据库
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://192.168.2.166:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.port=5000
5.创建普通用户启动使用
会使用到自带的es,不能使用root用户
useradd admin
su - admin
cd /server/sonarqube-7.8/bin/linux-x86-64
./sonar.sh start
./sonar.sh status
./sonar.sh stop
6.设置成系统服务
vim /etc/systemd/system/sonarqube.service
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
User=jdd966
Group=jdd966
PermissionsStartOnly=true
ExecStart=/bin/nohup /usr/local/java-se-8u40-ri/bin/java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /server/sonarqube-7.8/lib/sonar-application-7.8.jar
StandardOutput=syslog
LimitNOFILE=655360
LimitNPROC=655360
TimeoutStartSec=5
Restart=always
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start sonarqube.service
systemctl enable sonarqube.service
7.访问
地址:http://192.168.2.153:5000
用户名:admin
密码:admin12345678 (默认密码:admin,初次登录需要修改密码)
8.安装插件
中文插件
sonarqube7.8社区版在线安装中文插件要求的sonarqube版本至少是9.2,因此没法在线安装中文插件,这里采用另外一种办法:先手动下载适合7.8版本的中文插件,然后上传到对应的插件目录下,重启即可。
地址:
https://github.com/xuhuisheng/sonar-l10n-zh
https://github.com/xuhuisheng/sonar-l10n-zh/releases
下载好对应的中文插件:sonar-l10n-zh-plugin-1.28.jar,上传到对应的目录下:$SONARQUBE_HOME/extensions/plugins
,然后重启sonarqube
java项目分析插件
从上图可以看出,自带俩java的插件外,其他插件也是不能在线安装的。因此采用跟中文插件安装一样的办法
https://github.com/checkstyle/sonar-checkstyle
https://github.com/SEPMLAB/CodeHawk/releases
https://github.com/spotbugs/sonar-findbugs/