最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1.sonarQube的簡介

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

其工作流程如下:

如圖SonarQube由以下4個組件組成:

1.SonarQube Server:

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

2.SonarQube Database:

SonarQube實例的配置(安全性、插件設置等)項目、視圖等的質量快照。

3.SonarQube Plugins:服務器上安裝了多個SonarQube插件,可能包括語言,SCM,集成,身份驗證和管理插件

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

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

2.SonarQube的安裝

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

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
#包含有關訪問,Web流程,CE流程和Elasticsearch的SonarQube日志
$> docker volume create --name sonarqube_logs

3.配置本地數(shù)據(jù)庫(示例使用postgresql)

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

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

4.啟動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)建項目步驟

1:新建項目

步驟2:填寫項目信息

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

步驟4:記錄令牌

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

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

2.添加sonarQube配置

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

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

最后一項token需要添加。點擊添加,如下圖:

類型選擇 Secret text,并將我們在第三步中得到的token填入secret欄,其余欄目自定義。添加完后,回到上一步Server authentication token選擇剛剛添加的token。

5.項目中引入sonarQube

以下為maven單模塊項目示例:

1.引入sonarqube插件:

<!--添加參數(shù),指定projectKey,即在sonar中創(chuàng)建項目時的名稱-->
<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.手動代碼掃描

執(zhí)行以下命令

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

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

6.jenkins

6.jenkins pipeline中集成sonarqube

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

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

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

webhook域名為jenkins地址域名。

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

7.sonarQube

7.sonarQube自定義質量閥

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

2.

配置質量閥

3.測試

例如當閥值過高時,掃描結果不符合閥值要求,掃描結果則會失敗。

示例中我們隨便調整某個條件至當前項目無法到達的值

此時當pipeline在運行的時候,代碼質量檢查就會失敗,因為沒有達到標準。

⚠️:所以,我們在自定義自己項目的閥值的時候要視不同的項目情況而定。

8.總結

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • springcloud gateway如何配置動態(tài)路由

    springcloud gateway如何配置動態(tài)路由

    本文主要介紹了在SpringCloudGateway中配置動態(tài)路由的步驟,包括引入依賴、配置路由源、添加配置中心依賴、配置配置中心、定義路由規(guī)則和刷新配置等內容,使路由規(guī)則在配置中心更新時,無需重啟網(wǎng)關服務即可動態(tài)應用新的路由規(guī)則
    2024-10-10
  • Java Stream 流實現(xiàn)合并操作示例

    Java Stream 流實現(xiàn)合并操作示例

    這篇文章主要介紹了Java Stream 流實現(xiàn)合并操作,結合實例形式詳細分析了Java Stream 流實現(xiàn)合并操作原理與相關注意事項,需要的朋友可以參考下
    2020-05-05
  • Java中的RocketMQ消費冪等詳解

    Java中的RocketMQ消費冪等詳解

    這篇文章主要介紹了Java中的RocketMQ消費冪等詳解,當出現(xiàn)消費者對某條消息重復消費的情況時,重復消費的結果與消費一次的結果是相同的,并且多次消費并未對業(yè)務系統(tǒng)業(yè)務產生任何負面影響,那么這個消費過程就是消息冪等,需要的朋友可以參考下
    2023-10-10
  • Mybatis映射文件根標簽與子標簽示例講解

    Mybatis映射文件根標簽與子標簽示例講解

    這篇文章主要介紹了Mybatis映射文件根標簽與子標簽,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • Java中生成微信小程序太陽碼的實現(xiàn)方案

    Java中生成微信小程序太陽碼的實現(xiàn)方案

    這篇文章主要介紹了Java中生成微信小程序太陽碼的實現(xiàn)方案,本文講解了如何生成微信小程序太陽碼,通過微信提供的兩種方案都可以實現(xiàn),在實際的項目中建議采用第二種方案,需要的朋友可以參考下
    2022-05-05
  • Spring MVC 擴展和 SSM 框架整合步驟詳解

    Spring MVC 擴展和 SSM 框架整合步驟詳解

    在前端頁面后后臺交互的過程中,需要一種格式清晰、高效且兩端都可以輕松使用的數(shù)據(jù)格式做交互的媒介,JSON正可以滿足這一需求,下面學習使用Spring MVC 框架處理JSON數(shù)據(jù),感興趣的朋友一起看看吧
    2024-08-08
  • 詳解Java實現(xiàn)數(shù)據(jù)結構之并查集

    詳解Java實現(xiàn)數(shù)據(jù)結構之并查集

    并查集這種數(shù)據(jù)結構,可能出現(xiàn)的頻率不是那么高,但是還會經(jīng)常性的見到,其理解學習起來非常容易,通過本文,一定能夠輕輕松松搞定并查集
    2021-06-06
  • 基于Flyway實現(xiàn)簡化Spring Boot項目部署

    基于Flyway實現(xiàn)簡化Spring Boot項目部署

    這篇文章主要介紹了基于Flyway實現(xiàn)簡化Spring Boot項目部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Java并發(fā)編程學習之ThreadLocal源碼詳析

    Java并發(fā)編程學習之ThreadLocal源碼詳析

    這篇文章主要給大家介紹了關于Java并發(fā)編程學習之源碼分析ThreadLocal的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-06-06
  • SpringBoot集成vue的開發(fā)解決方案

    SpringBoot集成vue的開發(fā)解決方案

    這篇文章主要介紹了SpringBoot集成vue的開發(fā)解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12

最新評論

商城县| 开远市| 临高县| 平南县| 大方县| 安阳市| 罗源县| 修武县| 晋州市| 三河市| 报价| 镇赉县| 安泽县| 长沙市| 安仁县| 马山县| 长白| 荆州市| 吴川市| 黑山县| 嘉兴市| 安化县| 辉南县| 界首市| 周至县| 普安县| 大丰市| 南丹县| 乐陵市| 翁牛特旗| 翼城县| 板桥市| 湘潭县| 吴忠市| 浦北县| 漾濞| 广饶县| 张掖市| 鲁甸县| 平湖市| 夏津县|