最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

代碼質(zhì)量管理平臺實(shí)戰(zhàn)| SonarQube 安裝、配置及 JaCoCo、Maven 集成

2022-10-12 15:53 作者:愛測軟件測試  | 我要投稿


SonarQube 是一個用于代碼質(zhì)量管理的開源平臺,用于管理源代碼的質(zhì)量。同時 SonarQube 還對大量的持續(xù)集成工具提供了接口支持,可以很方便地在持續(xù)集成中使用 SonarQube。此外, SonarQube 的插件還可以對 Java 以外的其他編程語言提供支持,對國際化以及報告文檔化也有良好的支持。
官方網(wǎng)址:sonarqube.org/
通過插件形式,可以支持包括 Java,C#,C/C++、PL/SQL、Cobol、JavaScrip、Groovy、Ruby 等二十五種編程語言的代碼質(zhì)量管理與檢測,針對不同的編程語言其所提供的分析方式也有所不同:對于所有支持的編程語言,SonarQube 都提供源了代碼的靜態(tài)分析功能;對于某些特定的編程語言,SonarQube 提供了對編譯后代碼的靜態(tài)分析功能。
SonarQube 支持多種客戶端集成方式,包括但不限于 Scanner 客戶端、Ant、Gradle、Maven、Jenkins、IDEA 插件等。比較常用的為 Gradle 和 Maven。
SonarQube 并不是簡單地將各種質(zhì)量或覆蓋率檢測工具的結(jié)果(例如 CheckStyle、JaCoCo 等)直接展現(xiàn)給客戶,而是通過不同的插件算法來對結(jié)果進(jìn)行再加工,并最終以量化的方式來衡量代碼質(zhì)量,從而方便地對不同規(guī)模和種類的工程進(jìn)行相應(yīng)的代碼質(zhì)量管理,以便進(jìn)行有針對性的代碼修復(fù)或重構(gòu)。
SonarQube 在進(jìn)行代碼質(zhì)量管理時,會從以下的七個緯度對項(xiàng)目代碼質(zhì)量進(jìn)行分析。
Sonar 實(shí)際上是一個 Web 系統(tǒng),展現(xiàn)了靜態(tài)代碼掃描的結(jié)果,結(jié)果是可以自定義的,而真正實(shí)現(xiàn)代碼掃描的是 Sonar Scanner 這個工具,另外同時支持多種語言的原理是它的擴(kuò)展性,通過插件實(shí)現(xiàn)的,也就是 Java Jar 架包,可以在 Sonar 平臺上在線安裝或者離線安裝。
1.已安裝 JDK1.8 環(huán)境
2.已安裝 Maven(用于后期與 SonarQube、JaCoCo 的集成)
3.已安裝 MySQ L數(shù)據(jù)庫(Sonar 默認(rèn)的數(shù)據(jù)庫是自帶 H2 數(shù)據(jù)庫,是很小的嵌入式數(shù)據(jù)庫引擎,這里的配置換成了 MySQL,為了方便通過數(shù)據(jù)庫客戶端進(jìn)行數(shù)據(jù)查詢)
1.下載 SonarQube,地址為:
Download | SonarQube
2.配置數(shù)據(jù)庫(下面的SQL是指定了schema為sonar,password為sonar,其中第四條SQL是localhost是因?yàn)镸ySQL安裝在本地)
3.安裝 SonarQube
I. 將下載的 sonar-3.7.zip 包解壓至 Windows某個路徑,如 D:\Tools\sonar(如是其他OS,請選擇對應(yīng)路徑,如Linux的/usr/local/等)。
II. 修改 sonar.properties
在 /conf/sonar.properties 文件中,配置數(shù)據(jù)庫設(shè)置(默認(rèn)已經(jīng)提供了各類數(shù)據(jù)庫的支持這里使用 MySQL,因此取消 MySQL 模塊的注釋),同時因?yàn)槎丝跊_突而改成端口為 11000。
III.在 /bin/ 目錄下,運(yùn)行 /windows-x86-64/StartSonar.bat (因?yàn)楸?demo 是在 win10 64位安裝的,如果是 Linux 的話,運(yùn)行 nohup bash sonar.sh start &)
IV. 訪問?http://localhost:11000,如果不是本機(jī)就輸入 http://[remote IP]:11000,如果你看到下圖所示即證明配置成功。
4.用 admin/admin(默認(rèn))進(jìn)行登錄,并安裝漢化包
Chinese pack installation
Chinese pack restart
Chinese pack restart confirm
Well done!

  1. 下載Sonar Scanner,地址為:
    docs.sonarqube.org/disp

  2. 將下載的 sonar-scanner-cli-3.3.0.1492-windows.zip 包解壓至 Windows 某個路徑,如D:\Tools\sonar(如是其他OS,請選擇對應(yīng)路徑,如Linux的/usr/local/等)

  3. 修改環(huán)境變量
    新增變量:
    SONAR_SCANNER_HOME = D:\Tools\sonar\sonar-scanner-3.3.0
    修改Path變量:增添
    %SONAR_SCANNER_HOME%\bin\

  4. 安裝Sonar Scanner
    I. 將下載的 sonar-3.7.zip 包解壓至 Windows 某個路徑,如 D:\Tools\sonar(如是其他 OS,請選擇對應(yīng)路徑,如 Linux的/usr/local/ 等)。
    II. 修改 sonnar-scanner.properties
    在 /conf/sonar-scanner.properties 文件中,設(shè)置SonarQube服務(wù)器。
    III. 到你想檢測的工程根目錄下新建文件sonar-project.properties,文件內(nèi)容如下?,文件中的參數(shù)配置,參考Sonar Analysis Parameters這篇文章。
    在命令行模式下,在工程的根目錄下鍵入命令“sonar-scanner”,你會看到以下日志:
    運(yùn)行 sonar-scanner
    接著,重新登錄 SonarQube 平臺,檢測的結(jié)果已經(jīng)在平臺上展現(xiàn)出來
    從上圖你可以看出來,連單元測試覆蓋率的統(tǒng)計也生成出來了,主要原因?yàn)樵谠搈aven項(xiàng)目之前已經(jīng)集成了Jacoco插件(具體Maven與Jacoco的集成請參考我的另外一篇文章)。
    1.該項(xiàng)目為maven項(xiàng)目,并且Jacoco已經(jīng)通過POM文件集成到項(xiàng)目中,具體步驟請參考我的另外一篇文章。
    2.該集成方案其實(shí)還是首先通過maven package 命令去生成對應(yīng)的覆蓋率報告,然后通過sonar scanner直接使用該覆蓋率報告并通過一定算法加工并展示到SonarQube的界面上去。
    1.在項(xiàng)目根目錄的 sonar-project.properties 文件中,增添以下配置內(nèi)容:
    2.在 SoarQube 登錄 admin,并通過在【配置-應(yīng)用市場】下找到Jacoco插件并安裝和重啟。

  5. 在項(xiàng)目根目錄下,運(yùn)行 mvn package,當(dāng)build成功的時候Jacoco的結(jié)果就會產(chǎn)生在target/site/jacoco文件夾下。
    maven package

  6. 接著,在項(xiàng)目根目錄下運(yùn)行命令 sonar-scanner,如果看到以下結(jié)果證明已經(jīng)覆蓋率已經(jīng)可以在SonarQube上查閱。
    sonar scanner
    以上,后續(xù)繼續(xù)補(bǔ)充如何通過 SonarLint 整合到 IntelliJ IDEA,并同時如何整合到 Jenkins 實(shí)現(xiàn)自動化測試。


代碼質(zhì)量管理平臺實(shí)戰(zhàn)| SonarQube 安裝、配置及 JaCoCo、Maven 集成的評論 (共 條)

分享到微博請遵守國家法律
桂林市| 会泽县| 襄城县| 开江县| 黄石市| 赤城县| 昌邑市| 连城县| 五河县| 金华市| 闸北区| 泊头市| 奉节县| 武山县| 扎鲁特旗| 浮山县| 南召县| 准格尔旗| 卢氏县| 会东县| 九江市| 林口县| 新和县| 阿坝| 阿克| 伊宁市| 鄯善县| 新闻| 隆德县| 疏附县| 延川县| 福贡县| 苗栗县| 宾川县| 屯昌县| 巴东县| 安远县| 弥渡县| 仁化县| 柘荣县| 上林县|