您好,登錄后才能下訂單哦!
本篇內(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是 一個(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ù)雜度情況。
SonarQube 平臺(tái)是由4個(gè)部分組成:
SonarQube Server
SonarQube Database
SonarQube Plugins
SonarQube Scanner
Jenkins 是一個(gè)支持自動(dòng)化框架的服務(wù)器,我們這里不做詳細(xì)介紹。Jenkins 提供了相關(guān)的插件,使得 SonarQube 可以很容易地集成 。
登陸 jenkins,點(diǎn)擊"系統(tǒng)管理",如圖。
Jenkins 管理插件
Jenkins 安裝 SonarQube 插件
進(jìn)入 Jenkins 系統(tǒng)管理 – 系統(tǒng)設(shè)置,配置 SonarQube Server 信息
進(jìn)入 Jenkins 系統(tǒng)管理 - Global Tool Configuration,配置 SonarQube Scanner
新建 Jenkis 項(xiàng)目
在 Jenkins 項(xiàng)目構(gòu)建過(guò)程中加入 SonarScanner 進(jìn)行代碼分析
首先需要在新建的 Jenkins 項(xiàng)目的構(gòu)建環(huán)境標(biāo)簽頁(yè)中勾選"Prepare SonarQube Scanner evironment"
增加 Execute SonarQube Scanner 構(gòu)建步驟
配置 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
配置 Execute SonarQube Scanner 構(gòu)建步驟
Jenkins 項(xiàng)目構(gòu)建結(jié)果
分析結(jié)果報(bào)告
具體問(wèn)題展示
到此,相信大家對(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í)!
免責(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)容。