欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Jenkins集成sonarQube實(shí)現(xiàn)代碼質(zhì)量檢查過程圖解

 更新時(shí)間:2020年09月03日 11:58:42   作者:東溪陳姓少年  
這篇文章主要介紹了Jenkins集成sonarQube實(shí)現(xiàn)代碼質(zhì)量檢查過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1.sonarQube的簡介

SonarQube是一款自動(dòng)化代碼審查工具,用于檢測(cè)代碼中的錯(cuò)誤、漏洞和代碼異味。它可以與你現(xiàn)有的工作流集成,以支持跨項(xiàng)目分支和拉取請(qǐng)求的連續(xù)代碼檢查。

其工作流程如下:

如圖SonarQube由以下4個(gè)組件組成:

1.SonarQube Server:

WebServer:供開發(fā)人員,管理人員瀏覽高質(zhì)量的快照并配置SonarQube實(shí)例Search Server:基于Elasticsearch的Search Server從UI進(jìn)行后退搜索(歷史)computeEngine:負(fù)責(zé)處理代碼分析報(bào)告并將其保存在SonarQube數(shù)據(jù)庫中

2.SonarQube Database:

SonarQube實(shí)例的配置(安全性、插件設(shè)置等)項(xiàng)目、視圖等的質(zhì)量快照。

3.SonarQube Plugins:服務(wù)器上安裝了多個(gè)SonarQube插件,可能包括語言,SCM,集成,身份驗(yàn)證和管理插件

4.SonarScanners:多種sonar掃描組件,在構(gòu)建/持續(xù)集成服務(wù)器上運(yùn)行以分析項(xiàng)目。

關(guān)于sonar的具體介紹可參考其官網(wǎng)

2.SonarQube的安裝

SonarQube提供了多種安裝方式,本文將使用docker鏡像的安裝方式進(jìn)行演示。

1.拉取sonarQube的docker容器

$> docker pull sonarqube:8.2-community

2.創(chuàng)建docker數(shù)據(jù)卷

#包含數(shù)據(jù)文件,例如嵌入式H2數(shù)據(jù)庫和Elasticsearch索引
$> docker volume create --name sonarqube_data
#包含插件,例如語言分析器
$> docker volume create --name sonarqube_extensions
#包含有關(guān)訪問,Web流程,CE流程和Elasticsearch的SonarQube日志
$> docker volume create --name sonarqube_logs

3.配置本地?cái)?shù)據(jù)庫(示例使用postgresql)

如果使用postgresql的默認(rèn)schema "public",則無需這一步。如果想自定義schema,則執(zhí)行以下命令

ALTER USER mySonarUser SET search_path to <自定義的schema名稱>

4.啟動(dòng)sonarQube

$> docker run -d --name sonarqube \
-p 9000:9000 \
#以下為給sonarQube的數(shù)據(jù)庫配置,推薦postgresql
-e SONAR_JDBC_URL=jdbc:postgresql://xxxx:5432/postgres \
-e SONAR_JDBC_USERNAME=... \
-e SONAR_JDBC_PASSWORD=... \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
<image_name>

本地瀏覽器訪問localhost:9000即可訪問。

3.sonarQube中創(chuàng)建項(xiàng)目步驟

1:新建項(xiàng)目

步驟2:填寫項(xiàng)目信息

步驟3:創(chuàng)建令牌

步驟4:記錄令牌

創(chuàng)建項(xiàng)目完成,并且記錄下令牌,后續(xù)步驟會(huì)用到。

4.jenkins配置sonarQube插件1.安裝sonarQube插件

2.添加sonarQube配置

在jenkins>Manage Jenkins>global configuration中配置sonar的信息,如下圖:

name為自定義的名字,serverURL為sonarqube的訪問地址

最后一項(xiàng)token需要添加。點(diǎn)擊添加,如下圖:

類型選擇 Secret text,并將我們?cè)诘谌街械玫降膖oken填入secret欄,其余欄目自定義。添加完后,回到上一步Server authentication token選擇剛剛添加的token。

5.項(xiàng)目中引入sonarQube

以下為maven單模塊項(xiàng)目示例:

1.引入sonarqube插件:

<!--添加參數(shù),指定projectKey,即在sonar中創(chuàng)建項(xiàng)目時(shí)的名稱-->
<properties>
	<sonar.projectKey>sonar-demo</sonar.projectKey>
</properties>
<!--添加sonarqube插件-->
<plugin>
 <groupId>org.sonarsource.scanner.maven</groupId>
 <artifactId>sonar-maven-plugin</artifactId>
 <version>3.6.0.1398</version>
</plugin>

2.手動(dòng)代碼掃描

執(zhí)行以下命令

mvn sonar:sonar \
-Dsonar.projectKey=sonar的項(xiàng)目名稱 \
-Dsonar.host.url=http://sonar的地址 \
-Dsonar.login=第三步記錄的令牌

執(zhí)行完成回到sonarQube界面,可看到掃描記錄及結(jié)果:

6.jenkins

6.jenkins pipeline中集成sonarqube

在jenkinsfile中定義代碼靜態(tài)檢查的stage,如下圖:

上圖中定義了兩個(gè)stage,1.代碼靜態(tài)檢查 2.檢查結(jié)果分析

⚠️:檢查結(jié)果分析階段jenkins通過sonarqube的回調(diào)來得知掃描結(jié)果,需要在sonarqube中配置webhook:

webhook域名為jenkins地址域名。

至此,在jenkins pipeline(流水線)中成功集成sonarqube,如下圖:

7.sonarQube

7.sonarQube自定義質(zhì)量閥

1.創(chuàng)建自定義質(zhì)量閥

2.

配置質(zhì)量閥

3.測(cè)試

例如當(dāng)閥值過高時(shí),掃描結(jié)果不符合閥值要求,掃描結(jié)果則會(huì)失敗。

示例中我們隨便調(diào)整某個(gè)條件至當(dāng)前項(xiàng)目無法到達(dá)的值

此時(shí)當(dāng)pipeline在運(yùn)行的時(shí)候,代碼質(zhì)量檢查就會(huì)失敗,因?yàn)闆]有達(dá)到標(biāo)準(zhǔn)。

⚠️:所以,我們?cè)谧远x自己項(xiàng)目的閥值的時(shí)候要視不同的項(xiàng)目情況而定。

8.總結(jié)

本文介紹了在jenkins多分支流水線中集成sonarQube,從而實(shí)現(xiàn)在持續(xù)集成中代碼質(zhì)量檢查。文章涉及到的某些方面(jenkinsfile,sonarQube詳細(xì)使用等等)沒有詳細(xì)介紹,只是快速帶過了。sonarQube是業(yè)界知名度很高的代碼檢查工具,也是ci/cd中的工具生態(tài)成員。深入探索它,還會(huì)發(fā)現(xiàn)更多有用的,有趣的特性。代碼質(zhì)量檢查時(shí)代碼質(zhì)量內(nèi)建的一部分,在流水線中集成代碼質(zhì)量檢查可以及時(shí)的發(fā)現(xiàn)代碼中存在的問題和缺陷,從而及時(shí)修復(fù)問題,防止技術(shù)債務(wù)的堆積(還是那句話,解決問題最好的時(shí)機(jī)時(shí)問題出現(xiàn)的那一刻),否則當(dāng)問題堆積到一定程度的時(shí)候,修復(fù)成本會(huì)越來越高。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring中使用@Autowired注解無法注入的情況及解決

    spring中使用@Autowired注解無法注入的情況及解決

    這篇文章主要介紹了spring中使用@Autowired注解無法注入的情況及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java學(xué)習(xí)之異常處理的新特性詳解

    Java學(xué)習(xí)之異常處理的新特性詳解

    異常處理機(jī)制是Java很早時(shí)就搞出來的技術(shù),但在實(shí)際應(yīng)用中,我們發(fā)現(xiàn)這個(gè)異常處理也有一些不完善的地方,接下來主要給大家介紹一下Java異常處理的一些新特性,需要的朋友可以參考下
    2023-08-08
  • Java創(chuàng)建線程的七種方法總結(jié)(全網(wǎng)最全面)

    Java創(chuàng)建線程的七種方法總結(jié)(全網(wǎng)最全面)

    線程是Java中的基本執(zhí)行單元,它允許程序在同一時(shí)間執(zhí)行多個(gè)任務(wù),下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java創(chuàng)建線程的七種方法,文中通過實(shí)例代碼將這七種方法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • java?線程池如何執(zhí)行策略又拒絕哪些策略

    java?線程池如何執(zhí)行策略又拒絕哪些策略

    這篇文章主要介紹了java?線程池如何執(zhí)行策略又拒絕哪些策略,文章通過線程池的執(zhí)行方法?execute()?展開全篇內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • RabbitMQ消息拒絕如何解決

    RabbitMQ消息拒絕如何解決

    這篇文章主要介紹了RabbitMQ消息拒絕如何解決問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 詳解基于Spring Boot與Spring Data JPA的多數(shù)據(jù)源配置

    詳解基于Spring Boot與Spring Data JPA的多數(shù)據(jù)源配置

    本篇文章主要介紹了詳解基于Spring Boot與Spring Data JPA的多數(shù)據(jù)源配置,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • Java高并發(fā)測(cè)試框架JCStress詳解

    Java高并發(fā)測(cè)試框架JCStress詳解

    這篇文章主要介紹了Java高并發(fā)測(cè)試框架JCStress,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • java 中Map詳解及實(shí)例代碼

    java 中Map詳解及實(shí)例代碼

    這篇文章主要介紹了java 中Map詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java操作MinIO實(shí)現(xiàn)文件的上傳和刪除

    Java操作MinIO實(shí)現(xiàn)文件的上傳和刪除

    本文主要介紹如何將本地Java項(xiàng)目resources目錄下的一個(gè)PNG圖片上傳到MinIO,然后將上傳的圖片刪除,文中有詳細(xì)的流程步驟和示例代碼,需要的朋友可以參考下
    2023-06-06
  • SpringBoot整合Web開發(fā)之Json數(shù)據(jù)返回的實(shí)現(xiàn)

    SpringBoot整合Web開發(fā)之Json數(shù)據(jù)返回的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot整合Web開發(fā)其中Json數(shù)據(jù)返回的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論