偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

代碼質(zhì)量難評(píng)估?一文帶你用 SonarQube 分析代碼質(zhì)量!

開發(fā) 項(xiàng)目管理
如果你的項(xiàng)目是多模塊的結(jié)構(gòu),那么在運(yùn)行分析命令之前需要先運(yùn)行 ??mvn install?? 命令。同樣在 SonarSource / sonar-scanning-examples 下面有 Sonar 官方提供的 ??maven-multimodule?? 示例項(xiàng)目,我們以這個(gè)項(xiàng)目為例來(lái)講講如何掃描多模塊項(xiàng)目。

?  大家好,我是樹哥!

無(wú)論是架構(gòu)師還是研發(fā)經(jīng)理,代碼質(zhì)量都是必須要關(guān)注的重點(diǎn)。Sonar(沒錯(cuò),是 Sonar,不是 SonarQube)是一個(gè)用于代碼質(zhì)量管理的開源平臺(tái),用于管理代碼的質(zhì)量。

它通過(guò)插件形式可以支持二十幾種語(yǔ)言的代碼質(zhì)量檢測(cè),通過(guò)多個(gè)維度的檢查了快速定位代碼中潛在的或者明顯的錯(cuò)誤。千里之行始于足下,今天就讓我?guī)Т蠹矣靡粋€(gè)簡(jiǎn)單的例子,看看怎么使用 SonarQube 進(jìn)行代碼質(zhì)量管理。

基礎(chǔ)概念

SonarQube

SonarQube 是 Sonar 的服務(wù)端,相當(dāng)于一個(gè) web 服務(wù)器中的 tomcat,用來(lái)發(fā)布應(yīng)用,在線瀏覽分析等。

Sonar Scanner

Sonar Scanner 是對(duì)源碼進(jìn)行掃描的工具,它可以將結(jié)果保存到數(shù)據(jù)庫(kù)以便用上面的 SonarQube 進(jìn)行分析。關(guān)于 Sonar Scanner 更多的內(nèi)容,見官方文檔:Analyzing source code overview https://docs.sonarqube.org/latest/analyzing-source-code/overview/

環(huán)境配置

JDK 配置

SonarQube 最新版本需要 JDK11 以上,需要先配置好 JDK 開發(fā)環(huán)境。配置好之后再命令行運(yùn)行 java -version 查看,如果運(yùn)行沒報(bào)錯(cuò)說(shuō)明配置成功,如下代碼所示。

$ java -version
java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)

Maven 配置

后續(xù)將會(huì)使用 Sonar Scanner for Maven 來(lái)分析項(xiàng)目,因此需要有安裝 Maven 并配置好對(duì)應(yīng)的環(huán)境變量。配置好之后運(yùn)行 mvn -version 查看,如果運(yùn)行沒報(bào)錯(cuò)說(shuō)明配置成功,如下代碼所示。

[~]$ mvn -version
Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)
Maven home: /Users/xxxx/Yosemite/Alpha/maven
Java version: 11.0.18, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "11.4", arch: "x86_64", family: "mac"

數(shù)據(jù)庫(kù)支持

SonarQube 最新版本支持 SQLServer、Oracle、H2 等數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù),但并不支持 MySQL 數(shù)據(jù)庫(kù)。SonarQube 默認(rèn)會(huì)使用 H2 內(nèi)存數(shù)據(jù)庫(kù)來(lái)臨時(shí)存儲(chǔ)數(shù)據(jù),可能查看數(shù)據(jù)的時(shí)候會(huì)比較不方便。

安裝啟動(dòng) SonarQube

到 Sonar 官方網(wǎng)站下載 SonarQube:Clean Code | Developer First | Sonar,這里我們選擇社區(qū)版,如下圖所示。

圖片

下載完成之后解壓可以看到如下圖所示目錄,其中 bin? 是運(yùn)行應(yīng)用的目錄、conf? 是配置文件的目錄、logs 是日志的目錄。

圖片

這里我們打開 bin? 文件夾,可以看到有多個(gè)不同目錄對(duì)應(yīng)不同系統(tǒng)。我這里是 Windows 系統(tǒng)就打開 macosx-universal-64? 目錄,隨后運(yùn)行 ./sonar.sh start? 命令運(yùn)行。運(yùn)行之后,會(huì)啟動(dòng) SonarQube 所需要的各個(gè)服務(wù),包括 ElasticSearch 等。如果一切正常,那么日志會(huì)提示 SonarQube is operational,如下圖所示。

圖片

隨后,打開 SonarQube 的管理后臺(tái)地址:http://127.0.0.1:9000,輸入默認(rèn)的賬號(hào)密碼:admin/admin,點(diǎn)擊登錄之后會(huì)要求你修改密碼。修改密碼之后就進(jìn)入了 SonarQube 管理后臺(tái),如下圖所示。

圖片

SonarQube 也提供了 Docker 啟動(dòng)的方式,鏡像地址為:sonarqube - Official Image | Docker Hub。 用 Docker 的好處就是:你可以省去上面所有的配置,一個(gè)命令就啟動(dòng) SonarQube,真的是太方便了!

掃描簡(jiǎn)單項(xiàng)目

SonarQube 啟動(dòng)完成之后,這里用我之前的 chenyurong/quick-start-of-spock: help you to learn spock quickly. 項(xiàng)目來(lái)體驗(yàn)下 SonarQube 的代碼掃描功能。

首先,我們選擇手工導(dǎo)入項(xiàng)目的方式,來(lái)導(dǎo)入我們的本地項(xiàng)目,如下圖所示。

圖片

接著,我們?cè)O(shè)置好顯示名等信息,如下圖所示。

圖片

接著,選擇本地導(dǎo)入項(xiàng)目信息,如下圖所示。

圖片

接著,創(chuàng)建一個(gè) token 令牌,點(diǎn)擊創(chuàng)建按鈕,如下圖所示。

圖片

接著,我們選擇 Maven 構(gòu)建技術(shù),隨后 SonarQube 會(huì)自動(dòng)為我們生成對(duì)應(yīng)的命令,如下圖所示。

圖片

我們直接復(fù)制上面生成的 mvn 命令代碼,直接到 quick-start-of-spock 項(xiàng)目的根目錄運(yùn)行。正常情況下,其是可以運(yùn)行成功的,如下圖所示。

圖片

隨后,我們直接回到 SonarQube 頁(yè)面,可以看到 quick-start-of-spock 項(xiàng)目有數(shù)據(jù)了,如下圖所示。

圖片

掃描多模塊項(xiàng)目

如果你的項(xiàng)目是多模塊的結(jié)構(gòu),那么在運(yùn)行分析命令之前需要先運(yùn)行 mvn install? 命令。同樣在 SonarSource / sonar-scanning-examples 下面有 Sonar 官方提供的 maven-multimodule 示例項(xiàng)目,我們以這個(gè)項(xiàng)目為例來(lái)講講如何掃描多模塊項(xiàng)目。

首先,在項(xiàng)目根目錄下運(yùn)行 mvn install 命令,成功后再運(yùn)行 Sonar Scanner Maven 插件的分析命令,如下所示。

mvn clean verify sonar:sonar -Dsonar.login=sqxxxxxxxxxxxxxxd222e7adc

如果正常的話,那么命令行會(huì)輸出成功的日志信息,如下圖所示。

圖片

此時(shí)再打開 SonarQube 管理后臺(tái),可以看到多了一個(gè)名為 maven-multimodule 的項(xiàng)目,如下圖所示。

圖片

如果你想要在 Gradle、Ant 等構(gòu)建的項(xiàng)目中使用 Sonar Scanner,可以參考官網(wǎng)的文檔:Analyzing source code overview https://docs.sonarqube.org/latest/analyzing-source-code/overview/

責(zé)任編輯:武曉燕 來(lái)源: 樹哥聊編程
相關(guān)推薦

2022-02-17 09:41:04

bitnamidockersonarqube

2022-02-28 12:07:56

RxJS函數(shù)式

2023-07-06 08:22:49

SonarQubeToken

2009-06-03 15:31:40

Eclipse插件提高代碼質(zhì)量

2022-07-21 10:02:47

SonarQube代碼Java

2023-04-11 08:01:32

Web 開發(fā)源代碼映射

2022-03-25 09:22:42

代碼開發(fā)

2019-09-25 08:51:44

Python收藏算法

2020-11-27 08:00:00

開發(fā)分析工具web

2015-05-06 09:20:34

代碼質(zhì)量代碼審查實(shí)踐

2023-05-20 17:58:31

低代碼軟件

2023-10-12 09:13:14

2021-05-29 10:11:00

Kafa數(shù)據(jù)業(yè)務(wù)

2023-07-31 08:18:50

Docker參數(shù)容器

2023-11-06 08:16:19

APM系統(tǒng)運(yùn)維

2022-11-11 19:09:13

架構(gòu)

2022-06-22 07:54:35

OSS源碼軟件

2023-11-20 08:18:49

Netty服務(wù)器

2022-12-20 07:39:46

2023-12-21 17:11:21

Containerd管理工具命令行
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)