国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

搭建Sonarqube 代碼質量掃描環境

數據庫 其他數據庫
我們主要使用 bitnami 維護的鏡像,下面我們就使用 docker 鏡像來按照 postgresql 和 sonarqube。

最近在給公司搞代碼質量管理,因為之前出了線上事故,以前都沒人關注的,代碼風格五花八門,尤其是前端代碼,因為最新的 TypeScript 是支持類型注釋的,而很多前端程序員使用 JS 時間比較長,一下子適應不過來,寫代碼時不做類型檢查、不做異常判斷,把 BUG 都拋給瀏覽器,這就導致項目可靠性差、安全度低、可維護性極差。因此借著這個機會,把祖傳代碼也規范一下。

搭建 sonarqube 云端掃描環境

sonarqube 新版本不再支持 MySQL 數據庫,需要使用 postgresql 數據庫,我們主要使用 bitnami 維護的鏡像,這些鏡像更新比較及時,而且長期維護,尤其是 sonarqube 和 Jenkins,下面我們就使用 docker 鏡像來按照 postgresql 和 sonarqube。

安裝postgresql數據庫

docker run -d --name postgresql --restart=always -p 5432:5432 -e ALLOW_EMPTY_PASSWORD=yes -e POSTGRESQL_USERNAME=bn_sonarqube -e POSTGRESQL_DATABASE=bitnami_sonarqube bitnami/postgresql:13

安裝sonarqube

docker run -d --name sonarqube -p 9000:9000 -e ALLOW_EMPTY_PASSWORD=yes -e 
SONARQUBE_DATABASE_HOST=192.168.10.213 -e SONARQUBE_DATABASE_PORT_NUMBER=5432 -e
SONARQUBE_DATABASE_USER=bn_sonarqube -e
SONARQUBE_DATABASE_NAME=bitnami_sonarqube bitnami/sonarqube:9

如果sonarqube啟動失敗,報錯信息中包含max_map_count,可以通過調整系統文件數來修改:

vi /etc/sysctl.conf

# 文件最后加上如下內容
vm.max_map_count = 262144

配置工程掃描

使用 bitnami 搭建的 sonarqube 默認賬號密碼:admin/bitnami,訪問 localhost:9000,登錄后創建新的工程

填寫工程名,并創建令牌,令牌名稱建議和工程名相同

生成的令牌ID一定要復制下來,不會再顯示第二次,如果沒記下就需要重新生成,切記

選擇掃描的語言和執行掃描的機器,然后記下生成的掃描命令,執行完掃描后這個頁面將自動變為結果頁面

下載配置 sonar-scanner

在上面的截圖中會有 sonar-scanner 掃描器訪問地址,打開以后,根據需求下載對應系統的文件

本來掃描器也是有 docker 鏡像可以用的,但是 sonar-scanner 非常簡單,基本無需依賴,下載后即可使用,所以我們也就不需要搞 docker 鏡像來使用了。我這里使用 Linux 系統下的版本。

執行以下命令配置好 sonar-scanner 的掃描環境:

tar -xvf sonar-scanner-4.6.2.2472-linux.tar

mv sonar-scanner-4.6.2.2472-linux /usr/local

ln -s /usr/local/sonar-scanner-4.6.2.2472-linux/bin/sonar-scanner /usr/bin/sonar-scanner

掃描倉庫代碼

配置好掃描器后,我們就可以使用 sonar-scanner 來掃描我們的指定庫代碼了

下載代碼

使用 git 命令將代碼下載到和 sonar-scanner 在同一臺機器上

cd /home/code

git clone git@gitee.com:small_bud_star/xxxxxx.git

執行掃描命令

進入到代碼目錄下,執行工程創建時提供給我們的掃描命令

sonar-scanner \
-Dsonar.projectKey=databoard \
-Dsonar.sources=. \
-Dsonar.host.url=http://10.10.8.252:9000 \
-Dsonar.login=60f6c402242a93ba5982a1f9f4084937aba9fd5e

執行結果如下

掃描命令中的參數解釋:

  • projectKey: 我們創建項目時填的項目名稱
  • sources:掃描的目錄,一般我們都是進入工程目錄下進行掃描,如果在非根目錄下執行掃描命令,還需要配合其他的參數才可以
  • host.url:sonarqube 服務器地址
  • login:創建項目時生成的令牌,但是也可以增加一個參數 password,通過用戶名和密碼進行掃描

在實際項目使用中,我們建議在項目根目錄創建 sonar-project.properties 文件來配置掃描參數,以上掃描命令配置如下:

sonar.host.url=http://10.10.8.252:9000
sonar.sources=.
sonar.projectKey=databoard
sonar.login=60f6c402242a93ba5982a1f9f4084937aba9fd5e

然后進入項目根目錄,輸入sonar-scanner 就可以了

忽略規則配置

每一種開發語言都有很多掃描規則,因此誤報的可能性也很大,sonarqube 為我們提供了忽略規則的配置。打開項目規則配置:

忽略配置包括以下類型

  • 排除指定目錄:sonar.exclusions

排除public 下的所有文件及其子目錄下的文件

  • 包含指定目錄:sonar.inclusions

只掃描src目錄下的文件

  • 不需要檢測重復代碼的文件:sonar.cpd.exclusions

不檢查src/assets目錄下的所有文件重復度

  • 包含指定規則的文件不參與掃描:sonar.issue.ignore.allfile

文件中包含 sonarqube disable 字符串的文件不參與掃描,這樣我們就可以對一些特殊文件進行排除,字符串由我們自己定義

  • 指定的代碼塊不參與掃描:sonar.issue.ignore.block

從包含@layer的行到包含@endlayer的行之間的所有代碼不進行掃描,對于一些誤檢或者我們不想改變的代碼,可以自定義兩個標記把他們包含起來,這樣這些代碼就不會參與掃描了

  • 在指定文件中不檢查某些規則:sonar.issue.ignore.multicriteria

項目目錄下的所有ts文件不執行squid:S1195掃描規則

  • 在指定文件中只檢查某些規則:sonar.issue.enforce.multicriteria

在login/index.js文件中只檢查javascript:S1195規則,不檢查其他規則

以上配置是在sonarqube服務器上,我們更推薦另外一種方式,即在項目目錄下 sonar-project.properties文件中進行配置,配置如下:

sonar.host.url=http://10.10.8.252:9000
sonar.sources=.
sonar.projectKey=databoard
sonar.login=60f6c402242a93ba5982a1f9f4084937aba9fd5e
sonar.exclusions=public/**/*
sonar.issue.ignore.multicriteria=e1,e2
sonar.issue.ignore.multicriteria.e1.ruleKey=Web:ImgWithoutAltCheck
sonar.issue.ignore.multicriteria.e1.resourceKey=**/*
sonar.issue.ignore.multicriteria.e2.ruleKey=Web:BoldAndItalicTagsCheck
sonar.issue.ignore.multicriteria.e2.resourceKey=**/*

sonar.issue.ignore.block=e1,e2
sonar.issue.ignore.block.e1.beginBlockRegexp=@layer
sonar.issue.ignore.block.e1.endBlockRegexp=@layer
sonar.issue.ignore.block.e2.beginBlockRegexp=:deep
sonar.issue.ignore.block.e2.endBlockRegexp=:deep

VSCode配置 sonarlint 掃描

上面安裝配置好了Sonarqube以后,我們還可以安裝sonarlint插件進行編程支持,這個插件的作用是在我們開發代碼的過程中實時的顯示當前編輯代碼的異常情況,在插件中配置sonarqube服務器的作用是可以使用sonarqube服務器中的規則進行代碼檢查,并不是使用云端sonarqube進行代碼檢查。

安裝 jre 運行環境

  • 下載 JDK

java 11 以后沒有單獨的jre安裝包,需要安裝jdk,然后通過命令生成

https://www.oracle.com/java/technologies/downloads/

  • 安裝 JDK

  • 生成 Jre 目錄

進入JDK安裝目錄C:\Program Files\Java\jdk-17.0.2,執行以下命令

bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

生成的 Jre 目錄在 C:\Program Files\Java\jdk-17.0.2\jre

安裝 sonarlint 并配置

在應用商店中搜索 SonarLint

安裝完后點擊設置按鈕,進入擴展設置

選擇在settings.json 中編輯

將以下信息配置在文件最下面:

"sonarlint.connectedMode.connections.sonarqube": [
{
"serverUrl": "http://10.10.8.252:9000",
"token": "60f6c402242a93ba5982a1f9f4084937aba9fd5e"
}
],
"sonarlint.connectedMode.project": {
"projectKey": "databoard"
},
"sonarlint.ls.javaHome": "C:\\Program Files\\Java\\jdk-17.0.2\\jre",
"sonarlint.ls.vmargs": "-Xmx1024m",
"sonarlint.pathToNodeExecutable": "E:\\Program\\nodejs\\node.exe"
  • serverUrl:sonarqube 的服務器地址
  • token:上面使用的令牌
  • projectKey:工程名
  • sonarlint.ls.javaHome:jre的目錄
  • sonarlint.ls.vmargs:內存使用配置
  • sonarlint.pathToNodeExecutable:node可執行文件路徑配置

在我們的開發過程當中,推薦大家使用各種代碼檢查工具,對代碼質量進行管理,這樣可以幫我們避免很多低級的或者不合理的異常,尤其是對于經常出錯的同學,這是一個養成良好代碼書寫習慣的很好方式。

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-07-06 08:22:49

SonarQubeToken

2021-02-25 07:10:57

SonarQube代碼掃描代碼基線

2023-04-20 08:01:13

2022-07-21 10:02:47

SonarQube代碼Java

2023-10-12 09:13:14

2018-11-14 10:20:15

SonarQube開源追蹤代碼

2020-11-27 08:00:00

開發分析工具web

2011-05-03 16:14:24

掃描儀

2015-06-03 15:12:07

云端TFS微軟代碼管理環境

2022-03-25 09:22:42

代碼開發

2021-04-21 08:00:00

Web工具漏洞

2013-10-30 22:41:23

Clouda環境

2011-03-14 13:06:58

LAMP搭建

2011-03-09 13:02:31

LAMP環境搭建

2011-08-25 15:02:17

Lua環境搭建EditPlus

2015-10-26 10:14:13

Android開發環境robolectric

2013-07-23 06:11:44

Android開發學習Android開發環境Java

2012-11-07 09:48:26

2009-06-17 17:02:22

2011-04-02 11:40:17

LAMP測試環境
點贊
收藏

51CTO技術棧公眾號

高清在线视频不卡| 韩国中文免费在线视频| 蜜臀久久99精品久久一区二区| 亚洲成人手机在线| 色爱综合网站| 日韩在线不卡| 欧美日韩www| 可以看美女隐私的网站| 亚洲国产精品精华液2区45| 国产成人精品在线播放| 超碰在线最新| 欧美少妇xxx| 色影视在线视频资源站| 亚洲欧美国产毛片在线| 国产真实乱子伦| 日韩成人精品一区二区三区| 欧美日韩午夜在线视频| 你懂的视频在线| 高清不卡一二三区| 91久久久久久久一区二区| 国语自产精品视频在线看抢先版图片| 国产精品69久久| 日韩一二区视频| 国产福利电影在线| 日韩国产精品久久久久久亚洲| 欧美亚洲综合久久| 26uuu亚洲国产精品| 国内精品在线观看视频| 国产一区二区三区四区二区| 久久精品国产一区二区| 97色在线播放视频| 精品视频在线观看免费观看 | 国产一区欧美| 国产成人亚洲欧美| 日本 国产 欧美色综合| 2021狠狠干| 成人网在线播放| av污在线观看| 欧美最新大片在线看| 嗯啊主人调教在线播放视频| 中文字幕不卡av| 国产精品电影观看| 高清hd写真福利在线播放| 欧美成人高清| 亚洲精品一区二三区不卡| 日本成人黄色免费看| 黄页网站大全在线免费观看| 亚洲第一黄网| 亚洲欧美中文在线视频| 久久综合福利| 精品51国产黑色丝袜高跟鞋| 成人美女视频在线看| 日韩在线精品一区| 蜜芽在线免费观看| 亚洲日本护士毛茸茸| 黄页免费在线| 色94色欧美sute亚洲线路一ni| 久久撸在线视频| 亚洲女成人图区| 91不卡在线观看| 日韩中文在线不卡| 在线观看av黄网站永久| 在线亚洲+欧美+日本专区| 久久综合给合| 免费不卡av在线| 欧美精品色图| 欧美精品一二三| 成人av电影天堂| 亚亚洲欧洲精品| bt7086福利一区国产| 国产精品视频一| 欧美黄色网页| 91精品国产色综合久久不卡98口 | 97人人做人人爱| jizz大全欧美jizzcom| 欧美aⅴ99久久黑人专区| 黄色污污在线观看| 在线看日韩精品电影| 91超碰成人| 男女爱爱免费网站| 亚洲欧美日韩国产精品| 国产日韩欧美一区二区三区在线观看| 九色丨porny丨自拍入口| 国产亚洲精品久久久久久牛牛| 日韩激情av在线| 不卡视频观看| 一本久道久久综合| 亚洲福利在线播放| 国产99久久久精品| 日韩综合久久| 日本美女爱爱视频| 日韩av在线播放资源| 97久久人人超碰| 高潮按摩久久久久久av免费| 国产原创精品在线| 91最新在线免费观看| 欧美限制电影| www.成人三级视频| 欧美日韩在线精品一区二区三区激情| 国产黄a三级三级三级av在线看| 亚洲一区免费| 亚洲精品女av网站| 韩国成人精品a∨在线观看| 欧美洲成人男女午夜视频| 精品一区二区三区在线观看| 交换国产精品视频一区| 国产精品永久免费在线| 国产在线精品不卡| av电影免费在线看| 国产wwwxx| 国产精品成人av在线| 欧美美女一区二区在线观看| 成人一级片网址| 欧美在线高清| 国产69精品久久app免费版| 日本久久久久亚洲中字幕| 国产亚洲一区二区在线观看| 久久日韩视频| 国产欧美日韩综合精品二区| 国产精品久久久久久久午夜片 | 日韩亚洲视频| 日韩精品极品视频| 国产亚洲欧洲997久久综合| 日韩电影在线播放| 日韩欧美中字| 在线亚洲欧美视频| 最新欧美电影| 日本午夜一区二区三区| 伊人久久久久久久久久久| 亚洲福利一区二区三区| 亚洲综合丁香| 久久高清精品| 丰乳肥臀在线| av成人动漫| 国产美女永久无遮挡| 成人一区二区在线观看| 欧美精品播放| 欧美精品尤物在线观看 | 五月婷婷在线观看| 精品国产一区二区三区久久久蜜月 | 亚洲欧美另类图片小说| 欧美少妇精品| 亚洲精品在线视频观看| 性欧美长视频免费观看不卡| 久久精品成人一区二区三区| 欧美精品自拍偷拍| 成人午夜av电影| 噜噜爱69成人精品| 婷婷色综合网| av伊人久久| 超碰地址久久| 亚洲天堂中文字幕在线观看| 日韩国产综合| 国产精品粉嫩| 国产高清av在线播放| 自拍偷拍欧美激情| 粉嫩蜜臀av国产精品网站| 日韩av高清在线观看| 亚洲第一毛片| 国产麻豆综合| 欧美另类中文字幕| 黄色片网站在线| 日韩av成人| 阿v免费在线观看| 欧美日韩黄色一级片| 2019国产精品视频| 国产精品一区二区欧美黑人喷潮水| 日日狠狠久久偷偷四色综合免费| 在线观看视频一区二区欧美日韩| 久久蜜臀精品av| 国产精品亚洲综合色区韩国| www.成人| 亚洲区综合中文字幕日日| 91网在线播放| 亚洲一区二区久久久久久久| 亚洲码国产岛国毛片在线| 日韩一区二区在线观看| 91午夜在线播放| 99视频精品免费视频| 成人高清免费观看mv| 国产一级大片| 国产xxxxx在线观看| 奇米777影视成人四色| 国产特级嫩嫩嫩bbb| 日韩在线免费播放| 黄色影院在线播放| 中文精品视频一区二区在线观看| 日韩免费av在线| 国产精品久久久久久久久久小说| 成人有码在线播放| 国产综合免费视频| 国产色一区二区三区| 777精品久无码人妻蜜桃| 最新黄色av网站| 亚洲美女久久久| 欧美系列一区二区| 日韩一区二区三区视频在线| 美腿丝袜在线亚洲一区| 97在线精品| 国产精品理伦片|