SonarQube代碼質量管理平臺本地化搭建和使用

SonarQube 是一個開源的代碼質量管理平臺,主要用于持續檢查代碼質量,支持多種編程語言。

本文章記錄了在windows環境中,搭建和使用SonarQube的完整過程。

①SonarQube平臺搭建

SonarQube最新社區版本下載地址:

https://www.sonarsource.com/products/sonarqube/downloads/success-download-community-edition/

各個歷史版本的下載地址(社區版、開發人員版、企業版、數據庫版):

https://www.sonarsource.com/products/sonarqube/downloads/historical-downloads/

我本次下載的是最后一個社區版(10.7.0)

SonarQube官方文檔:

https://docs.sonarsource.com/sonarqube-server/latest/

安裝SonarQube服務

在這個目錄下執行cmd命令

SonarService.bat install

如果要卸載服務,執行命令:

SonarService.bat uninstall

啟動SonarQube服務

瀏覽器輸入?127.0.0.1:9000進行訪問

初始賬號和密碼都是?admin

登錄成功的樣子

漢化SonarQube平臺顯示

搜索中文包并安裝

安裝完成,重新啟動后,再次登陸,看到的就是中文了。

②PostgreSQL數據庫

安裝PostgreSQL數據庫

數據庫下載官網

https://www.postgresql.org/

安裝詳細教程

https://blog.csdn.net/m0_71071763/article/details/149602408

PostgreSQL創建新用戶

在PostgreSQL中創建用戶sonar

PostgreSQL創建新數據庫

在PostgreSQL中創建數據庫sonar

SonarQube配置數據庫連接

在SonarQube的conf/sonarproperties中配置數據庫連接。

找到配置文件

修改下面的內容

配置修改完成,重啟SonarQube。

重啟完成后,需要重新用admin登陸,密碼也是admin。

可以看到sonor數據庫下面新建了一些表。

③SonarScanner安裝和配置

需要安裝sonarScanner才能對代碼進行掃描。

下載sonar-scanner

不同的應用場景有不同的版本,選擇對應的版本進行下載。

如果不確定項目所屬類型,可以選擇通用版本(SonarScanner CLI)下載

通用版本掃描器下載地址

https://docs.sonarsource.com/sonarqube-community-build/analyzing-source-code/scanners/sonarscanner/

下載完成后,是個壓縮包,進行解壓。

修改配置文件

配置conf目錄下的sonar-scanner.properties文件,添加sonarQube平臺地址

修改配置內容如下

其中token生成方式如下所示


將bin目錄配置到環境變量

把SonarScanner的bin目錄配置到系統環境變量中。

檢驗環境變量配置

在命令行輸入 sonar-scanner -h 確認環境變量是否生效。

到此,SonarQube平臺的搭建就完成了,包括SonarQube、PostgreSQL數據庫、SonarScanner,三部分組成。

④掃描項目

以Java項目為例,進行代碼的掃描。

配置掃描信息

在項目代碼根目錄下添加sonar-project.properties文件


文件內容如下 :

sonar.projectKey=jszx

sonar.projectName=jszx

sonar.projectVersion=1.0

sonar.sources=.

sonar.sourceEncoding=UTF-8

sonar.language=java

sonar.java.binaries=sa-admin/target/classes

sonar.scm.disabled=true

配置說明:

sonar.projectKey=在sonarQube上的實例鍵名(唯-)
sonar.projectName=在sonarQube上的項目名稱
sonar.projectVersion=1.0(項目版本號)
sonar.sources=.(java源代碼目錄指定)
sonar.sourceEncoding=UTF-8(編碼格式指定)
sonar.language=java(指明只掃描java語言)
sonar.java.binaries=target/classes(class文件的目錄)


在項目代碼根目錄下,運行掃描命令

sonar-scanner

等待掃描完成

出現這個信息,表示掃描完成。

查看掃描結果

訪問SonarQube平臺,查看掃描結果

可以看到掃描的項目名稱,已經顯示在上面。

點擊項目名稱,進入詳情頁面,可以看到具體的掃描結果信息。

根據問題說明對問題進行修復。

還有一種操作方式,在SonarQube平臺創建項目(不需要手動在項目目錄下面創建sonar-project.properties文件),然后執行命令進行掃描,具體操作如下:

打開cmd,然后定位到項目的根目錄下面,執行對應的命令。

等待執行結束

出現success表示掃描成功了,再去看瀏覽器頁面,此時就自動加載了掃描結果:

⑤在idea中進行代碼掃描分析

在idea中安裝插件:SonarQube for IDE

在idea左側,可以看到波浪線的小圖標,點擊后打開的就是對應的可視化窗口。

在這個窗口中可以直接看到當前文件所存在的一些問題。

點擊這個按鈕,可以對整個項目的所有代碼進行掃描。

整個項目的掃描結果

⑥idea與SonarQube掃描平臺建立連接

如果想把SonarQube掃描平臺的結果,同步顯示在idea中,通過以下配置即可:

點擊創建token,會自動打開瀏覽器頁面,然后選擇允許連接。

回到idea配置頁面,點擊下一步

完成配置。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96818.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96818.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96818.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于雙向LSTM深度學習網絡模型的文本序列推薦系統matlab仿真

目錄 1.程序功能描述 2.測試軟件版本以及運行結果展示 3.部分程序 4.算法理論概述 5.完整程序 1.程序功能描述 在信息爆炸的時代,用戶面臨著海量文本信息的篩選難題,文本序列推薦系統應運而生。雙向長短期記憶網絡(Bi-directional Long …

Transformer實戰(17)——微調Transformer語言模型進行多標簽文本分類

Transformer實戰(17)——微調Transformer語言模型進行多標簽文本分類 0. 前言 1. 多標簽文本分類 2. 數據加載與處理 3. 模型微調 小結 系列鏈接 0. 前言 與單標簽分類不同,多標簽分類要求模型能夠為同一文本分配多個相關標簽,這在新聞分類、文獻標注、內容推薦等場景中尤…

開源 C++ QT Widget 開發(十六)程序發布

文章的目的為了記錄使用C 進行QT Widget 開發學習的經歷。臨時學習,完成app的開發。開發流程和要點有些記憶模糊,趕緊記錄,防止忘記。 相關鏈接: 開源 C QT Widget 開發(一)工程文件結構-CSDN博客 開源…

MATLAB2-結構化編程和自定義函數-臺大郭彥甫視頻

目錄 if elseif else switch case otherwise while exercise練習 for 預宣告 練習題 break tips編程的小技巧 functions函數 練習題 函數句柄 if elseif else 如果condition為真,執行語句 if condition1statement1 elseif condition2statement2 elsest…

LVGL移植2048小游戲全攻略

目錄 準備腳手架 修改源碼 對接觸摸 測試編譯 測試運行 這一節將以一個已經編寫好的 lvgl 小游戲 2048 描述如何將已經編寫完成的 lvgl 程序移植到開發板上。 準備腳手架 在這之前,我們先準備基礎的 LVGL 腳手架。可以直接從 lv_g2d_test 里復制過來進行修改…

在Unity2021中使用Profiler的Deep Profile功能時內存超高怎么辦?

這通常是因為Deep Profile會記錄每一幀所有函數調用的詳細信息,導致內存急劇增長,尤其在大型項目或復雜場景中4。別擔心,我來幫你分析原因并提供一些解決辦法。 理解 Deep Profile 的內存開銷與替代方案 Deep Profile是Unity Profiler的一個…

Ubuntu 設置中文輸入法

一、使用 IBus(Ubuntu 默認框架)步驟 1:安裝中文輸入法sudo apt install ibus-libpinyin ibus-pinyin步驟 2:添加輸入法打開 Settings > Keyboard > Input Sources。點擊 “”,搜索 Chinese (Intelligent Pinyin…

【Zephyr電源與功耗專題】14_BMS電池管理算法(三重驗證機制實現高精度電量估算)

文章目錄前言一、算法系統框架設計介紹1.1:核心設計方式1.2:系統架構圖1.3:核心參數配置二、核心算法詳解2.1:硬件數據采集與濾波2.2:三重算法機制2.2.1:庫侖計法(電流積分)2.2.2&am…

Python網絡與多任務編程:TCP/UDP實戰指南

Python網絡與多任務編程:TCP/UDP實戰指南 一、網絡編程 1.1 前言 網絡編程是現代軟件開發中不可或缺的一部分,它使得不同設備之間的數據交換成為可能。Python提供了強大的標準庫來支持各種網絡編程需求。 1.1.1 IP地址簡介 IP地址是互聯網上設備的唯一標…

Android8 binder源碼學習分析筆記(四)——ServiceManager啟動

前文回顧: Android8 binder源碼學習分析筆記(三): https://blog.csdn.net/g_i_a_o_giao/article/details/151365630?spm1001.2014.3001.5502 Android8 binder源碼學習分析筆記(二): https://…

Redis 大 Key 與熱 Key:生產環境的風險與解決方案

🔥 Redis 大 Key 與熱 Key:生產環境的風險與解決方案 文章目錄🔥 Redis 大 Key 與熱 Key:生產環境的風險與解決方案🧠 一、問題定義與識別💡 什么是大 Key?🔥 什么是熱 Key&#xff…

C++算法題中的輸入輸出形式(I/O)

本文主要幫助刷leetcode題型快速適應完整帶輸入輸出的題(機試、考試、比賽等)接收能用cin就用cin 。cin 自動分割單詞 的特性(cin 讀取字符串時會自動跳過空格 / 換行,將連續非空格字符作為一個 “單詞”)一、單組輸入…

【左程云算法09】棧的入門題目-最小棧

目錄 棧的入門題目-最小棧 代碼演示 視頻鏈接 算法講解015【入門】棧的入門題目-最小棧 Leecode155 棧的入門題目-最小棧 實現一個getmin方法(高效方法,即不用遍歷),希望能實現O(1) 做法&#xff1a…

Grafana與Prometheus實戰

🌟Grafana的Dashboard的權限管理 創建團隊 創建用戶 設置團隊權限 🌟Prometheus啟用https及認證功能 自建ca的證書 準備證書目錄 mkdir /app/tools/prometheus-2.53.4.linux-amd64/certs cd /app/tools/prometheus-2.53.4.linux-amd64/certs生成ca的…

FPGA交通燈設計報告(源碼+管腳約束+實物圖+設計報告)

基于FPGA的交通燈設計 摘要 本設計采用FPGA技術實現了一個智能交通燈控制系統。系統以Verilog HDL為設計語言,在FPGA平臺上實現了交通燈的自動控制、數碼管倒計時顯示、緊急情況處理等功能。通過合理的狀態機設計和模塊化編程,系統具有良好的實時性、可靠性和可擴展性,能夠…

技術論文分析分析論文《計算機病毒判定專家系統原理與設計》思考其在游戲中的應用

論文原文的引言主要有兩大部分的內容:介紹計算機病毒,明確本文使用的病毒分類方式;分析傳統計算機病毒檢測存在的弊端。對于計算機病毒的定義,文中給出的定義比較嚴謹,我自己查了一下現在百度百科的定義,兩…

《Unity項目實戰:動態加載引發的顯存危機全鏈路排查與重構實踐》

從動態光影那流光溢彩、仿佛賦予虛擬世界真實質感的絢麗效果—這得益于Unity引擎強大的HDRP管線對光照路徑的精準模擬,到物理引擎驅動的物體碰撞精準到毫厘的物理反饋—依托Unity Physics模塊對剛體動力學的毫秒級計算,再到能夠依據不同設備性能自動適配的畫質表現—通過Unit…

智慧水庫綜合管理系統平臺御控物聯網解決方案

一、行業背景與痛點分析水庫作為防洪、灌溉、供水、發電及生態保護的核心基礎設施,其管理效率直接關系到區域水資源安全與可持續發展。然而,傳統水庫管理模式存在四大核心痛點:數據孤島嚴重:水位、雨量、水質、設備狀態等數據分散…

使用nvm安裝Node.js18以下報錯解決方案——The system cannot find the file specified.

使用 nvm 安裝 Node.js 18以下 報錯解決方案 在前端開發過程中,常常需要針對不同項目切換 Node.js 版本。nvm(Node Version Manager)是最常用的工具。但最近在嘗試安裝 Node.js 14 版本時,遇到了奇怪的錯誤。 問題描述 使用 nv…

在Excel和WPS表格中快速復制上一行內容

有的時候我們在Excel和WPS表格中想復制上一行對應單元格、連續區域或整行的內容,只需要在當前行拖動鼠標左鍵選中相關區域,然后按CtrlD鍵即可將上一行對應位置的內容復制過來——需要注意的是,如果當前行有數據,這些數據會直接被覆…