成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

搭建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工具漏洞

2011-03-09 13:02:31

LAMP環境搭建

2011-03-14 13:06:58

LAMP搭建

2013-10-30 22:41:23

Clouda環境

2012-11-07 09:48:26

2011-04-02 11:40:17

LAMP測試環境

2009-06-17 17:02:22

2015-10-26 10:14:13

Android開發環境robolectric

2013-07-23 06:11:44

Android開發學習Android開發環境Java

2011-08-25 15:02:17

Lua環境搭建EditPlus
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产中文字幕在线观看 | 在线激情视频 | 91成人在线 | 一区二区在线免费观看视频 | 欧美成人a∨高清免费观看 欧美日韩中 | 国产精品精品久久久久久 | 天天操天天干天天爽 | 亚洲欧美在线观看 | 亚洲综合无码一区二区 | 日本不卡免费新一二三区 | 久久1区| 欧日韩不卡在线视频 | 国产一区二区三区四区五区加勒比 | 欧美a级成人淫片免费看 | 亚洲欧美国产精品一区二区 | 男女黄网站 | 午夜精品久久久久久久99黑人 | 欧美在线a | 久久久久久久久久久成人 | 国产成人短视频在线观看 | 亚洲一二三区不卡 | 蜜桃一区| 在线观看特色大片免费网站 | 欧美xxxx性xxxxx高清 | 成人在线视频观看 | 午夜精品久久久久久久久久久久 | 伊人网综合在线 | 91久操视频 | pacopacomama在线| 91精品欧美久久久久久久 | 久久免费精品 | 国产欧美在线观看 | 亚洲欧美日韩成人在线 | 欧美黄在线观看 | 伊人伊成久久人综合网站 | 亚洲精品在线免费观看视频 | 99爱免费| 成人网视频 | 国内精品久久影院 | aacc678成免费人电影网站 | 久久色视频 |