官方文檔地址:https://docs.sonarqube.org/latest/requirements/requirements/
使用 sonarqube 對 java 項目代碼進行掃描的時候,java 項目的版本不能低於 sonar 的編譯版本。
sonarqube:7.8-community 是 sonar 對 jdk1.8 的最后一個版本,從 7.9 以后 sonar 最低支持版本為 jdk 1.11
要求:Oracle JRE 11 or OpenJDK 11
https://repo.huaweicloud.com/openjdk/11.0.2/
cpu,內存,磁盤IO 越高越好
1.下載壓縮包
官網下載最新版壓縮包:sonarqube-9.2.4.50792.zip
2.配置java環境
https://repo.huaweicloud.com/openjdk/11.0.2/openjdk-11.0.2_linux-x64_bin.tar.gz
unzip openjdk-11.0.2_linux-x64_bin.tar.gz -C /usr/local
# cat /etc/profile.d/java.sh
#!/bin/bash
export JAVA_HOME=/usr/local/jdk-11.0.2
export JRE_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
3.創建普通用戶啟動使用
會使用到自帶的es,不能使用root用戶
useradd admin
su - admin
cd /home/sonarqube-9.2.4.50792/bin/linux-x86-64
./sonar.sh start
./sonar.sh status
./sonar.sh stop
4.設置成系統服務
# cat /etc/systemd/system/sonarqube.service
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
User=admin # 用戶
Group=admin # 用戶組
PermissionsStartOnly=true
ExecStart=/bin/nohup /usr/local/jdk-11.0.2/bin/java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /home/sonarqube-9.2.4.50792/lib/sonar-application-9.2.4.50792.jar # java路徑和項目路徑
StandardOutput=syslog
LimitNOFILE=131072
LimitNPROC=8192
TimeoutStartSec=5
Restart=always
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start sonarqube.service
systemctl enable sonarqube.service
5.訪問
地址:http://192.168.2.161:9000
用戶名:admin
密碼:admin12345678 (默認密碼:admin,初次登錄需要修改密碼)
6.安裝中文插件
重啟后頁面顯示就是中文的了
7.安裝java項目代碼分析插件
8.修改數據庫
默認使用的是H2,內嵌的數據庫
支持的數據庫如下所示:
這里安裝使用PostgreSQL13,安裝步驟參考地址:https://www.cnblogs.com/sanduzxcvbnm/p/15769935.html
配置文件路徑:$SONARQUBE-HOME/conf/sonar.properties
# 停止服務
systemctl stop sonarqube.service
vim /home/sonarqube-9.2.4.50792/conf/sonar.properties
# 使用到的用戶名密碼和數據庫需要新建才行
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=public
使用navicat登錄postgresql數據庫,創建為sonarQube專用的sonar用戶,用戶名為sonar,密碼為sonar
創建數據庫。數據庫名稱為:sonarqube
保存成功之后,可以切換為sonar用戶登陸。
# 重啟服務
systemctl stop sonarqube.service
重啟過程中,sonar會使用配置的數據庫,並在數據庫中自動創建表格。需要一點時間,重啟完成之后,可以在數據庫當中看到sonar創建的表:
然后訪問登錄,使用默認的用戶名和密碼(均為admin)登錄