在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Jenkins 與 SonarQube 集成部署,自動(dòng)化代碼質(zhì)量監(jiān)控

jf_21561199 ? 來源:jf_21561199 ? 作者:jf_21561199 ? 2025-01-07 17:24 ? 次閱讀

前言

強(qiáng)化代碼質(zhì)量,加速軟件交付!Jenkins 攜手 SonarQube,與華為云 Flexus X 云服務(wù)器強(qiáng)強(qiáng)聯(lián)合,打造自動(dòng)化代碼質(zhì)量監(jiān)控新生態(tài)。Flexus X 以其靈活的算力配置、卓越的性能表現(xiàn),為 Jenkins 與 SonarQube 的集成部署提供強(qiáng)大支撐。在 Flexus X 的助力下,自動(dòng)化代碼掃描與質(zhì)量問題即時(shí)反饋成為可能,顯著提升團(tuán)隊(duì)開發(fā)效率與軟件質(zhì)量。立即體驗(yàn)華為云 828 企業(yè)上云節(jié)優(yōu)惠,讓 Jenkins 與 SonarQube 的集成部署更加順暢,共同守護(hù)您的代碼質(zhì)量,加速軟件交付周期!

wKgZPGd88t6AK9YwAAEA4xEY1H4138.png

SonarQube 介紹

SonarQube 是一款用于代碼質(zhì)量管理的開源工具,它采用 B/S 架構(gòu),主要用于管理源代碼的質(zhì)量。 通過 SonarQube 我們可以檢測(cè)出項(xiàng)目中重復(fù)代碼, 潛在 bug, 代碼規(guī)范,安全性漏洞等問題, 并通過 SonarQube web UI 展示出來。

wKgZO2d88t-ANwcQAABO6yBwzU0894.png

SonarQube 環(huán)境搭建

需要了解:

采用 docker 方式進(jìn)行部署 SonarQube 代碼質(zhì)量管理的開源工具

詳細(xì)購(gòu)買配置實(shí)例可參考文章:快速部署華為云FlexusX實(shí)例,開啟您的云端之旅

部署 docker 服務(wù)請(qǐng)參考文章:華為FlexusX與Docker+Nginx的高效整合之路

SonarQube 的安裝

SonarQube 在 7.9 版本中已經(jīng)放棄了對(duì) MySQL 的支持,并且建議在商業(yè)環(huán)境中采用 PostgreSQL,那么安裝 SonarQube 時(shí)需要依賴 PostgreSQL。

并且這里會(huì)安裝 SonarQube 的長(zhǎng)期支持版本8.9

拉取鏡像

[root@flexusx-251f~]#dockerpullpostgres

[root@flexusx-251f~]#dockerpullsonarqube:8.9.3-community

#創(chuàng)建目錄

[root@flexusx-251f~]#mkdir/sonarqube

[root@flexusx-251f~]#cd/sonarqube/

編寫 docker-compose.yaml 文件

version:"2.29.1"

services:

db:

image:postgres#指定鏡像

container_name:postgres_db#指定容器名稱

ports:

-5432:5432#映射端口到宿主機(jī),以從外部訪問數(shù)據(jù)庫

networks:

-sonarnet#連接到 sonarnet 網(wǎng)絡(luò)

environment:

POSTGRES_USER:sonar#創(chuàng)建數(shù)據(jù)庫

POSTGRES_PASSWORD:sonar#數(shù)據(jù)庫密碼

sonarqube:

image:sonarqube:8.9.3-community#指定鏡像

container_name:sonarqube#指定容器名稱

depends_on:

-db#指定服務(wù)

ports:

-"9000:9000"#映射端口到宿主機(jī),以便可以從外部訪問 SonarQube。

networks:

-sonarnet#連接到 sonarnet 網(wǎng)絡(luò)

environment:

SONAR_JDBC_URL:jdbc:postgresql://db:5432/sonar

SONAR_JDBC_USERNAME:sonar

SONAR_JDBC_PASSWORD:sonar

networks:

sonarnet:

driver:bridge#創(chuàng)建橋接網(wǎng)絡(luò)

配置 sysctl.conf 文件信息。設(shè)置 vm.max_map_count

[root@flexusx-251fsonarqube]#vim/etc/sysctl.conf

#在最后添加一行vm.max_map_count

[root@flexusx-251fsonarqube]#cat/etc/sysctl.conf

...

vm.max_map_count=262144

#刷新

[root@flexusx-251fsonarqube]#sysctl-p

vm.swappiness=0

net.ipv4.tcp_max_tw_buckets=5000

net.ipv4.tcp_max_syn_backlog=1024

vm.max_map_count=262144

啟動(dòng)容器

[root@flexusx-251fsonarqube]#docker-composeup-d

WARN[0000]/sonarqube/docker-compose.yaml:theattribute`version`isobsolete,itwillbeignored,pleaseremoveittoavoidpotentialconfusion

[+]Running3/3

?Networksonarqube_sonarnetCreated0.0s

?Containerpostgres_dbStarted0.2s

?ContainersonarqubeStarted0.3s

[root@flexusx-251fsonarqube]#docker-composels

NAMESTATUSCONFIGFILES

sonarquberunning(2)/sonarqube/docker-compose.yaml

### 訪問 SonarQube 首頁

放行安全組 9000,5432

wKgZPGd88t-ARN6dAAEnNUr1Zr8951.png

訪問地址:http://主機(jī) ip:9000

wKgZPGd88t-AWXj-AABHsF3zP2Q004.png

登錄用戶名和密碼均為 admin

wKgZO2d88uCAGi1NAAAYkz5mAfU047.png

登錄成功進(jìn)行密碼修改

wKgZPGd88uCAPYaeAABMhNSMd-I411.png

進(jìn)入 Sonar Qube首頁

wKgZO2d88uCAUSKcAADCl87zr1U163.png

安裝中文插件

我同意風(fēng)險(xiǎn),并點(diǎn)擊安裝

wKgZPGd88uCANbBWAAF7D_FlnNQ406.png

安裝成功后,會(huì)查看到重啟按鈕,點(diǎn)擊即可

wKgZO2d88uGAIv5pAAFT-ECAuJs630.png

Jenkins 集成 Sonar Qube

Jenkins 繼承 Sonar Qube 實(shí)現(xiàn)代碼掃描需要先下載整合插件

Jenkins 安裝插件

下載 Sonar Qube 插件

wKgZPGd88uGAZmU8AAFRr6mkt44606.png

wKgZO2d88uGAXHhjAADRcLMdebI163.png

安裝成功

wKgZPGd88uGAWXlVAACbNjGVpLY746.png

Sonar-scanner 實(shí)現(xiàn)代碼檢測(cè)****

下載 Sonar-scanner:https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/

下載 4.6.x 版本即可,要求 Linux 版本

我們直接在/Jenkins/data 目錄進(jìn)行安裝,因?yàn)槲覀儗⒅鳈C(jī)的/jenkins/data 目錄掛在給了容器的/var/jenkins_home/目錄

[root@flexusx-251f~]# mkdir /jenkins/data/sonar-scanner

[root@flexusx-251f~]# cd /jenkins/data/sonar-scanner

# 上傳軟件包

[root@flexusx-251fsonar-scanner]# ls

sonar-scanner-cli-4.6.2.2472-linux.zip

解壓軟件包

[root@flexusx-251fsonar-scanner]# unzip sonar-scanner-cli-4.6.2.2472-linux.zip

配置 sonarQube 服務(wù)端地址,修改 conf 下的 sonar-scanner.properties

[root@flexusx-251fsonar-scanner]# ls

sonar-scanner-4.6.2.2472-linuxsonar-scanner-cli-4.6.2.2472-linux.zip

[root@flexusx-251fsonar-scanner]# cd sonar-scanner-4.6.2.2472-linux/

[[email protected]]# ls

binconf jre lib

[[email protected]]# cd conf/

[root@flexusx-251fconf]# ls

sonar-scanner.properties

[root@flexusx-251fconf]# vim sonar-scanner.properties

[root@flexusx-251fconf]# cat sonar-scanner.properties

#Configure here general information about the environment, such as SonarQube server connection details for example

#No information about specific project should appear here

#----- Default SonarQube server

#sonar.host.url=http://localhost:9000

sonar.host.url=http://123.249.27.118:9000

#----- Default source code encoding

#sonar.sourceEncoding=UTF-8

sonar.sourceEncoding=UTF-8

執(zhí)行命令檢測(cè)代碼(如果設(shè)置了令牌需要指定才能成功 -Dsonar.login=toekn 值)

# 去到項(xiàng)目目錄下

[root@flexusx-251ftarget]# cd /jenkins/data/workspace/test01/target

# 在主機(jī)進(jìn)行指定 sonar-scanner 運(yùn)行

[root@flexusx-251ftarget]# /jenkins/data/sonar-scanner/sonar-scanner-4.6.2.2472-linux/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=test01 -Dsonar.projectKey=java -Dsonar.java.binaries=target/

INFO:Scanner configuration file: /jenkins/data/sonar-scanner/sonar-scanner-4.6.2.2472-linux/conf/sonar-scanner.properties

INFO:Project root configuration file: NONE

INFO:SonarScanner 4.6.2.2472

....................................

INFO:ANALYSIS SUCCESSFUL, you can browse http://123.249.27.118:9000/dashboard?id=java

INFO:Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report

INFO:More about the report processing at http://123.249.27.118:9000/api/ce/task?id=AZHAblB5Qhli4mfRayPT

INFO:Analysis total time: 2.408 s

INFO:------------------------------------------------------------------------

INFO:EXECUTION SUCCESS

INFO:------------------------------------------------------------------------

INFO:Total time: 14.564s

INFO:Final Memory: 7M/30M

INFO:------------------------------------------------------------------------

查看 SonarQube 界面檢測(cè)結(jié)果

wKgZO2d88uKAdaH2AAC_ds7SAU8122.png

Jenkins 配置 Sonar Qube

開啟 Sonar Qube 權(quán)限驗(yàn)證

wKgZPGd88uKAIzfqAAEv4o99uTA725.png

獲取 Sonar Qube 的令牌(填寫一個(gè)名稱,生成 token)

5544214f876d9ef6737c0f2a731991d877adf380

wKgZO2d88uKADmsVAADZstK8Y4Y173.png

配置 Jenkins 的 Sonar Qube 信息

wKgZPGd88uOANcbkAAFa26BobWA285.png

wKgZO2d88uOAUULwAACMiTM_1xk066.png

wKgZPGd88uOAPRdSAACO9gRQHa0444.png

wKgZO2d88uOARZsFAACi8OTe8Ug674.png

配置 Sonar-scanner

將 Sonar-scaner 添加到 Jenkins 數(shù)據(jù)卷中并配置全局配置

wKgZO2d88uSAVTCuAAFAEA-CfWs018.png

wKgZPGd88uSAfJmAAACPM5rPvHw113.png

配置任務(wù)的 Sonar-scanner

sonar.projectname=${JOB_NAME}

sonar.projectKey=${JOB_NAME}

sonar.source=./

sonar.java.binaries=target

wKgZO2d88uWAe7TIAADck1rRy2A981.png

構(gòu)建任務(wù)

wKgZPGd88uWAVPV-AADoyirKp3w378.png

構(gòu)建成功

wKgZO2d88uWALKD1AAGHWWNl1f8186.png

wKgZPGd88uWAHyE9AADw3p08DfE310.png

體驗(yàn)和感受

在追求高效開發(fā)與快速迭代的軟件開發(fā)領(lǐng)域,代碼質(zhì)量是確保軟件穩(wěn)定性和可靠性的基石。華為云 Flexus X 實(shí)例,以其卓越的性能和穩(wěn)定的云環(huán)境,為企業(yè)用戶提供了強(qiáng)大的基礎(chǔ)設(shè)施支持。結(jié)合 Jenkins 持續(xù)集成/持續(xù)部署(CI/CD)工具與 SonarQube 代碼質(zhì)量管理平臺(tái),F(xiàn)lexusx 更是為企業(yè)開啟了自動(dòng)化代碼質(zhì)量監(jiān)控的新篇章。

Jenkins 與 SonarQube 的集成部署,實(shí)現(xiàn)了代碼提交后的自動(dòng)構(gòu)建、測(cè)試以及質(zhì)量分析。每當(dāng)有新的代碼提交,Jenkins 便會(huì)觸發(fā)構(gòu)建流程,并將構(gòu)建結(jié)果傳遞給 SonarQube 進(jìn)行深度代碼質(zhì)量檢查。SonarQube 能夠識(shí)別潛在的代碼缺陷、漏洞以及不規(guī)范的編碼實(shí)踐,并提供詳細(xì)的報(bào)告和改進(jìn)建議。

值此 828 華為云企業(yè)上云節(jié)之際,可以體驗(yàn) Flexusx 服務(wù)器上 Jenkins 與 SonarQube 的集成部署方案。這一方案將顯著提升您的軟件開發(fā)效率與代碼質(zhì)量,幫助您構(gòu)建更加健壯、可靠的應(yīng)用程序。讓 Flexusx 成為您軟件質(zhì)量提升的加速器,Jenkins 與 SonarQube 則為您的代碼質(zhì)量保駕護(hù)航。

選擇華為云 Flexus X 實(shí)例,攜手 Jenkins 與 SonarQube,共同開啟自動(dòng)化代碼質(zhì)量監(jiān)控的新時(shí)代。點(diǎn)擊下方鏈接,在 828 上云節(jié)的特惠期間,讓我們攜手并進(jìn),共創(chuàng)軟件開發(fā)的輝煌未來!

產(chǎn)品鏈接華為云Flexus云服務(wù)器X實(shí)例直播建站服務(wù)器-華為云

wKgZO2d88uaAO8BbAAMdMY7jqCs587.png

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2755

    瀏覽量

    17980
  • jenkins
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    5261
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在持續(xù)集成開發(fā)流程中使用Jenkins和Docker?

    Jenkins自動(dòng)化我們開發(fā)的測(cè)試流程。 在您開始之前,我們假設(shè)您對(duì)Arm上的嵌入式軟件開發(fā)有基本的了解。Docker、Jenkins和Arm Fast模型將在指南中進(jìn)行解釋。 對(duì)Python的高級(jí)
    發(fā)表于 08-02 10:50

    Jenkins管理的持續(xù)集成境引入Docker來優(yōu)化資源配置

    Jenkins是被廣泛應(yīng)用的持續(xù)集成自動(dòng)化測(cè)試、持續(xù)部署的框架,甚至有些項(xiàng)目組順便將其用來做流程管理的工具。根據(jù)任務(wù)的多寡,Jenkins
    發(fā)表于 09-26 11:42 ?0次下載
    在<b class='flag-5'>Jenkins</b>管理的持續(xù)<b class='flag-5'>集成</b>境引入Docker來優(yōu)化資源配置

    jenkins有什么用_jenkins如何自動(dòng)部署

    Jenkins是一個(gè)開源的、提供友好操作界面的持續(xù)集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持續(xù)、自動(dòng)的構(gòu)建/測(cè)試軟件項(xiàng)目、監(jiān)控外部任務(wù)的運(yùn)行(這個(gè)比較抽象
    發(fā)表于 12-20 19:06 ?3.7w次閱讀
    <b class='flag-5'>jenkins</b>有什么用_<b class='flag-5'>jenkins</b>如何<b class='flag-5'>自動(dòng)</b><b class='flag-5'>部署</b>

    jenkins自動(dòng)化部署

    本文詳細(xì)介紹Jenkins的簡(jiǎn)單使用—jenkins自動(dòng)化部署
    的頭像 發(fā)表于 02-06 11:27 ?4887次閱讀
    <b class='flag-5'>jenkins</b><b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b>

    jenkins持續(xù)集成原理

    本文詳細(xì)介紹了jenkins持續(xù)集成原理。持續(xù)集成就是為解決程序代碼提交質(zhì)量低,提交內(nèi)容導(dǎo)致原有系統(tǒng)的bug,按時(shí)或按需
    的頭像 發(fā)表于 02-06 11:43 ?4229次閱讀

    Jenkins詳細(xì)安裝與構(gòu)建部署使用教程

    本文詳細(xì)介紹了Jenkins安裝與構(gòu)建部署使用教程。Jenkins是一個(gè)開源軟件項(xiàng)目,旨在提供一個(gè)開放易用的軟件平臺(tái),使軟件的持續(xù)集成變成可能。Je
    發(fā)表于 02-06 13:47 ?1803次閱讀
    <b class='flag-5'>Jenkins</b>詳細(xì)安裝與構(gòu)建<b class='flag-5'>部署</b>使用教程

    Jenkins+Docker一鍵自動(dòng)化部署SpringBoot項(xiàng)目

    本文章實(shí)現(xiàn)最簡(jiǎn)單全面的Jenkins+docker+springboot 一鍵自動(dòng)部署項(xiàng)目,步驟齊全,少走坑路。
    的頭像 發(fā)表于 12-14 10:04 ?1058次閱讀

    Jenkins+Docker實(shí)現(xiàn)一鍵自動(dòng)化部署項(xiàng)目!

    本文章實(shí)現(xiàn)最簡(jiǎn)單全面的Jenkins+docker+springboot 一鍵自動(dòng)部署項(xiàng)目,步驟齊全,少走坑路。
    的頭像 發(fā)表于 01-06 15:36 ?1362次閱讀

    Jenkins+Docker一鍵自動(dòng)化部署SpringBoot應(yīng)用最精簡(jiǎn)流程

    簡(jiǎn)述實(shí)現(xiàn)步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實(shí)現(xiàn)項(xiàng)目自動(dòng)拉取打包并運(yùn)行。
    的頭像 發(fā)表于 11-06 16:27 ?2461次閱讀
    <b class='flag-5'>Jenkins</b>+Docker一鍵<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b>SpringBoot應(yīng)用最精簡(jiǎn)流程

    基于Jenkins+GitLab+Maven實(shí)現(xiàn)代碼自動(dòng)打包編譯發(fā)布

    Jenkins是一個(gè)獨(dú)立開源的持續(xù)集成和持續(xù)交付工具,用于自動(dòng)化構(gòu)建、測(cè)試和部署軟件項(xiàng)目。
    的頭像 發(fā)表于 11-20 09:57 ?5568次閱讀
    基于<b class='flag-5'>Jenkins</b>+GitLab+Maven實(shí)現(xiàn)<b class='flag-5'>代碼</b><b class='flag-5'>自動(dòng)</b>打包編譯發(fā)布

    使用Jenkins和單個(gè)模板部署多個(gè)Kubernetes組件

    在持續(xù)集成部署中,我們通常需要部署多個(gè)實(shí)例或組件到Kubernetes集群中。通過Jenkins的管道腳本,我們可以自動(dòng)化這個(gè)過程。在本文
    的頭像 發(fā)表于 01-02 11:40 ?960次閱讀
    使用<b class='flag-5'>Jenkins</b>和單個(gè)模板<b class='flag-5'>部署</b>多個(gè)Kubernetes組件

    Flexus X 實(shí)例 Docker+Jenkins+gitee 實(shí)現(xiàn) CICD 自動(dòng)化部署 - 解放你的雙手~

    前言 828 B2B 企業(yè)節(jié)特惠來襲,F(xiàn)lexus X 實(shí)例引領(lǐng)自動(dòng)化部署新紀(jì)元!Docker 攜手 Jenkins 與 Gitee,共創(chuàng) CICD 無限可能!在快速迭代的數(shù)字時(shí)代,我們自豪地推出
    的頭像 發(fā)表于 12-26 18:19 ?367次閱讀
    Flexus X 實(shí)例 Docker+<b class='flag-5'>Jenkins</b>+gitee 實(shí)現(xiàn) CICD <b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b> - 解放你的雙手~

    云服務(wù)器Flexus X實(shí)例,Docker集成搭建Jenkins CI/CD平臺(tái)

    Jenkins 是一個(gè)開源的自動(dòng)化服務(wù)器,用于持續(xù)集成(CI)和持續(xù)交付(CD)軟件項(xiàng)目。它允許開發(fā)人員在軟件開發(fā)過程中自動(dòng)化各種任務(wù),如構(gòu)建、測(cè)試和
    的頭像 發(fā)表于 12-29 15:43 ?293次閱讀
    云服務(wù)器Flexus X實(shí)例,Docker<b class='flag-5'>集成</b>搭建<b class='flag-5'>Jenkins</b> CI/CD平臺(tái)

    基于 Docker 與 Jenkins 實(shí)現(xiàn)自動(dòng)化部署

    前言 重塑自動(dòng)化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服務(wù)器的加持下,引領(lǐng)持續(xù)集成部署的新紀(jì)元。F
    的頭像 發(fā)表于 01-07 17:25 ?376次閱讀
    基于 Docker 與 <b class='flag-5'>Jenkins</b> 實(shí)現(xiàn)<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>部署</b>

    Jenkins的安裝教程

    Jenkins是一個(gè)開源的、提供友好操作界面的持續(xù)集成(CI)工具,廣泛用于項(xiàng)目開發(fā),具有自動(dòng)化構(gòu)建、測(cè)試和部署等功能。Jenkins用Ja
    的頭像 發(fā)表于 02-06 10:04 ?674次閱讀
    <b class='flag-5'>Jenkins</b>的安裝教程
    主站蜘蛛池模板: 亚洲一区毛片 | 婷婷六月天激情 | 免费国产一区二区三区 | 亚洲视频免费一区 | 国产又黄又爽又猛的免费视频播放 | 天堂在线中文无弹窗全文阅读 | 丁香婷婷社区 | 一级aaa毛片| 国产一级特黄在线播放 | 人人爱人人爽 | 激情综合色五月丁香六月亚洲 | 特黄特色大片免费视频播放 | h视频在线播放 | 日本在线观看一区 | 亚洲人成网站在线 | 国产精品天天操 | 好硬好湿好爽再深一点h视频 | 色拍视频 | 亚洲一级色片 | 午夜视频在线观看免费视频 | 美女扒开尿囗给男生桶爽 | 欧美亚洲综合一区 | 午夜色网站 | 玖玖草在线观看 | 成人ww| 27pao强力打造高清免费高 | 午夜精品久久久久久久第一页 | 国产一级特黄老妇女大片免费 | 亚洲成av人影片在线观看 | 欧美日韩不卡码一区二区三区 | 操碰91| 色综合久久久高清综合久久久 | 日本免费黄视频 | 四虎影视亚洲精品 | 黄色a毛片| www深夜视频在线观看高清 | 四虎伊人 | 国产精品久久久久久久久久影院 | 成人a一级毛片免费看 | 日本不卡在线视频 | 综合免费一区二区三区 |