溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

發(fā)布時(shí)間:2021-06-26 10:27:03 來(lái)源:億速云 閱讀:211 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)”吧!

SonarQube 與 Jenkins 簡(jiǎn)介

  1. SonarQube是 一個(gè)開(kāi)源的代碼質(zhì)量分析平臺(tái),便于管理代碼的質(zhì)量,可檢查出項(xiàng)目代碼的漏洞和潛在的邏輯問(wèn)題。同時(shí),它提供了豐富的插件,支持多種語(yǔ)言的檢測(cè), 如 Java、Python、Groovy、C、C++等幾十種編程語(yǔ)言的檢測(cè)。它主要的核心價(jià)值體現(xiàn)在如下幾個(gè)方面:

    • 檢查代碼是否遵循編程標(biāo)準(zhǔn):如命名規(guī)范,編寫(xiě)的規(guī)范等。

    • 檢查設(shè)計(jì)存在的潛在缺陷:SonarQube 通過(guò)插件 Findbugs、Checkstyle等 工具檢測(cè)代碼存在的缺陷。

    • 檢測(cè)代碼的重復(fù)代碼量:SonarQube可以展示項(xiàng)目中存在大量復(fù)制粘貼的代碼。

    • 檢測(cè)代碼中注釋的程度:源碼注釋過(guò)多或者太少都不好,影響程序的可讀可理解性。

    • 檢測(cè)代碼中包、類(lèi)之間的關(guān)系:分析類(lèi)之間的關(guān)系是否合理,復(fù)雜度情況。

  2. SonarQube 平臺(tái)是由4個(gè)部分組成:

    • SonarQube Server

    • SonarQube Database

    • SonarQube Plugins

    • SonarQube Scanner

Jenkins 與 SonarQube 集成插件的安裝與配置

Jenkins 是一個(gè)支持自動(dòng)化框架的服務(wù)器,我們這里不做詳細(xì)介紹。Jenkins 提供了相關(guān)的插件,使得 SonarQube 可以很容易地集成 。

  1. 登陸 jenkins,點(diǎn)擊"系統(tǒng)管理",如圖。 怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  2. Jenkins 管理插件

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  3. Jenkins 安裝 SonarQube 插件

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  4. 進(jìn)入 Jenkins 系統(tǒng)管理 – 系統(tǒng)設(shè)置,配置 SonarQube Server 信息

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  5. 進(jìn)入 Jenkins 系統(tǒng)管理 - Global Tool Configuration,配置 SonarQube Scanner

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  6. 新建 Jenkis 項(xiàng)目

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  7. 在 Jenkins 項(xiàng)目構(gòu)建過(guò)程中加入 SonarScanner 進(jìn)行代碼分析

    首先需要在新建的 Jenkins 項(xiàng)目的構(gòu)建環(huán)境標(biāo)簽頁(yè)中勾選"Prepare SonarQube Scanner evironment"

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  8. 增加 Execute SonarQube Scanner 構(gòu)建步驟

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  9. 配置 SonarQube Scanner 構(gòu)建步驟,在 Task to run 輸入框中輸入 scan,即分析代碼;在 JDK 選擇框中選擇 SonarQube Scanner 使用的 JDK(注意這里必須是 JDK 不能是 JRE);Path to project properties 是可選擇的輸入框,這里可以指定一個(gè) sonar-project.properties 文件,如果不指定的話會(huì)使用項(xiàng)目默認(rèn)的 properties 文件;Analysis properties 輸入框,這里需要輸入一些配置參數(shù)用來(lái)傳遞給 SonarQube,這里的參數(shù)優(yōu)先級(jí)高于 sonar-project.properties 文件里面的參數(shù),所以可以在這里來(lái)配置所有的參數(shù)以替代 sonar-project.properties 文件,下面列出了一些參數(shù),sonar.language 指定了要分析的開(kāi)發(fā)語(yǔ)言(特定的開(kāi)發(fā)語(yǔ)言對(duì)應(yīng)了特定的規(guī)則),sonar.sources 定義了需要分析的源代碼位置(示例中的$WORKSPACE 所指示的是當(dāng)前 Jenkins 項(xiàng)目的目錄),sonar.java.binaries 定義了需要分析代碼的編譯后 class 文件位置;Additional arguments 輸入框中可以輸入一些附加的參數(shù),示例中的-X 意思是進(jìn)入 SonarQube Scanner 的 Debug 模式,這樣會(huì)輸出更多的日志信息;JVM Options 可以輸入在執(zhí)行 SonarQube Scanner 是需要的 JVM 參數(shù)

     sonar.projectKey=testSonar 
     sonar.projectName=testSonar 
     sonar.projectVersion=1.0 
     sonar.language=java 
     sonar.java.binaries=$WORKSPACE/testSonar/target/test-classes/ 
     sonar.sources=$WORKSPACE/testSonar/src


  10. 配置 Execute SonarQube Scanner 構(gòu)建步驟

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  11. Jenkins 項(xiàng)目構(gòu)建結(jié)果

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  12. 分析結(jié)果報(bào)告

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

  13. 具體問(wèn)題展示

    怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)

到此,相信大家對(duì)“怎么用Jenkins與Sonar集成對(duì)代碼進(jìn)行持續(xù)檢測(cè)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI