全面解析SonarQube 7.8安裝與Maven集成指南:兼容JDK 1.8和MySQL的代碼質(zhì)量管理
引言:為什么選擇SonarQube 7.8?
SonarQube 7.8是一個長期支持(LTS)版本,特別適合使用JDK 1.8的項目。它提供了穩(wěn)定的Java 8支持,而更高版本需要JDK 11及以上。此外,SonarQube 7.8兼容MySQL數(shù)據(jù)庫,而8.0及以上版本已棄用MySQL,改用PostgreSQL。對于長期維護(hù)的Java 8項目,SonarQube 7.8是一個理想的選擇,避免了升級帶來的環(huán)境適配問題。
一、環(huán)境準(zhǔn)備與下載
版本要求
- SonarQube 7.8:需要JDK 1.8(推薦Oracle JDK 8或OpenJDK 8)。
- 數(shù)據(jù)庫:MySQL 5.6或5.7(8.0不兼容)。
- 操作系統(tǒng):Linux/Windows均可(本文以Linux為例)。
下載地址
- SonarQube 7.8:官方Archive:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip(若官方鏈接失效,可從第三方可信鏡像站下載)。
- MySQL驅(qū)動:下載
mysql-connector-java-5.1.48.jar(與MySQL 5.x兼容)。
二、安裝與配置SonarQube 7.8
解壓與目錄結(jié)構(gòu)
unzip sonarqube-7.8.zip -d /opt cd /opt/sonarqube-7.8
配置數(shù)據(jù)庫
- 創(chuàng)建MySQL數(shù)據(jù)庫:
CREATE DATABASE sonarqube CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'sonar'@'%' IDENTIFIED BY 'sonar123'; GRANT ALL PRIVILEGES ON sonarqube.* TO 'sonar'@'%'; FLUSH PRIVILEGES;
2.修改sonar.properties: 編輯conf/sonar.properties:
# 數(shù)據(jù)庫配置 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance sonar.jdbc.username=sonar sonar.jdbc.password=sonar123 # 其他關(guān)鍵配置 sonar.web.host=0.0.0.0 sonar.web.port=9000
3.替換MySQL驅(qū)動: 將mysql-connector-java-5.1.48.jar復(fù)制到lib/jdbc目錄。
啟動SonarQube
# Linux ./bin/linux-x86-64/sonar.sh start # Windows ./bin/windows-x86-64/StartSonar.bat
驗證安裝:訪問 http://服務(wù)器IP:9000,默認(rèn)賬號admin/admin。
三、Maven項目集成
全局配置(settings.xml)
在Maven的settings.xml中添加:
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://服務(wù)器IP:9000</sonar.host.url>
<sonar.login>生成的令牌</sonar.login>
</properties>
</profile>
</profiles>
</settings>項目級配置(pom.xml)
確保指定兼容JDK 1.8的插件版本:
<build> <plugins> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.6.0.1398</version> <!-- 兼容7.8的版本 --> </plugin> </plugins> </build>
執(zhí)行代碼分析
mvn clean verify sonar:sonar
查看結(jié)果:登錄SonarQube控制臺,查看代碼覆蓋率、Bug數(shù)、重復(fù)率等指標(biāo)。

四、自定義規(guī)則與插件
自定義規(guī)則
- 修改Quality Profile:
- 進(jìn)入SonarQube控制臺 → Quality Profiles → 復(fù)制默認(rèn)規(guī)則集(如"Sonar way")。
- 激活/停用特定規(guī)則,調(diào)整閾值(如復(fù)雜度、重復(fù)代碼檢測)。
常用插件
- 內(nèi)置插件:Java、JavaScript、Web。
- 推薦安裝:
- FindBugs(靜態(tài)Bug檢測)
- Checkstyle(代碼風(fēng)格檢查)
- JaCoCo(覆蓋率分析)
安裝方法:
這些插件號稱是可以在sonarqube的marketplace里安裝的,如圖:

如果版本不對應(yīng),可以點擊issue Tracker 內(nèi)部來獲取合適的版本,下載插件JAR包至extensions/plugins目錄,重啟SonarQube。

注意重啟SonarQube,不是直接關(guān)閉cmd窗口
1、可以重啟電腦
2、可以將對應(yīng)的進(jìn)程殺死

jps -l命令會列出所有Java進(jìn)程的進(jìn)程ID、類名以及主類的完整包名或JAR文件的完整路徑名
taskkill /F /PID 進(jìn)程號
五、注意事項
- 內(nèi)存調(diào)整:修改
conf/wrapper.conf中的wrapper.java.maxmemory=1GB(避免OOM)。 - 防火墻:確保9000端口開放。
- MySQL時區(qū):若報時區(qū)錯誤,在JDBC URL中添加
&serverTimezone=UTC。
通過以上步驟,您可順利在JDK 1.8環(huán)境中搭建SonarQube 7.8,并與Maven項目集成實現(xiàn)代碼質(zhì)量管理。若有疑問,歡迎評論區(qū)交流!
到此這篇關(guān)于全面解析SonarQube 7.8安裝與Maven集成指南:兼容JDK 1.8和MySQL的代碼質(zhì)量管理的文章就介紹到這了,更多相關(guān)SonarQube 7.8安裝與Maven集成內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決SpringBoot使用@Value獲取不到y(tǒng)aml中配置值的問題
在最近的開發(fā)中遇到一個問題,使用@Value獲取yml文件中配置的屬性時始終獲取不到值,所以本文給大家詳細(xì)介紹了SpringBoot使用@Value獲取不到y(tǒng)aml中值的問題分析及解決方法,需要的朋友可以參考下2024-01-01
Java將Lambda表達(dá)式對應(yīng)的類保存到class文件中的方法示例
大家在日常開發(fā)中應(yīng)該都用過 Lambda表達(dá)式,以下面的 java代碼為例,我們在運行 HelloWorld中的 main方法時,可以看到 r的類型信息,但是在編譯時、運行時都沒有看到 r對應(yīng)的類的 class文件,本文給大家介紹了Java將Lambda表達(dá)式對應(yīng)的類保存到class文件中的方法示例2026-05-05
Java中的Opencv簡介與開發(fā)環(huán)境部署方法
OpenCV是一個開源的計算機視覺和圖像處理庫,提供了豐富的圖像處理算法和工具,它支持多種圖像處理和計算機視覺算法,可以用于物體識別與跟蹤、圖像分割與邊緣檢測、圖像特征提取與描述等應(yīng)用,本文介紹Java中的Opencv簡介與開發(fā)環(huán)境部署方法,感興趣的朋友一起看看吧2025-01-01
Java實現(xiàn)刪除排序鏈表中的重復(fù)元素的方法
這篇文章主要介紹了Java實現(xiàn)刪除排序鏈表中的重復(fù)元素的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

