《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

NO IMAGE

前言
隨便寫寫,大家也就隨便看看,2020年,爭取拿個乒乓球小區冠軍。

目錄

1 概述

SonarQube是一個開源平臺,用於管理源代碼得質量。SonarQube不只是一個質量數據報告工具,更是代碼質量管理平臺。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十幾種編程語言的代碼質量管理與檢測。 SonarQube可以從以下七個維度檢測代碼質量,而作為開發人員至少需要處理前5種代碼質量問題。

	(1) 不遵循代碼標準
SonarQube可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫。
(2) 潛在的缺陷
SonarQube可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢 測出潛在的缺陷。
(3) 糟糕的複雜度分佈
文件、類、方法等,如果複雜度過高將難以改變,這會使得開發人員 難以理解它們, 且如果沒有自動化的單元測試,對於程序中的任何組件的改變都將可能導致需要全面的迴歸測試。
(4) 重複
顯然程序中包含大量複製粘貼的代碼是質量低下的,SonarQube可以展示 源碼中重複嚴重的地方。
(5) 註釋不足或者過多
沒有註釋將使代碼可讀性變差,特別是當不可避免地出現人員變動時,程序的可讀性將大幅下降 而過多的註釋又會使得開發人員將精力過多地花費在閱讀註釋上,亦違背初衷。
(6) 缺乏單元測試
SonarQube可以很方便地統計並展示單元測試覆蓋率。
(7) 糟糕的設計
通過SonarQube可以找出循環,展示包與包、類與類之間的相互依賴關係,可以檢測自定義的架構規則 通過SonarQube可以管理第三方的jar包,可以利用LCOM4檢測單個任務規則的應用情況, 檢測耦合。

2 基礎環境準備

本文主要講述如何在windows系統搭建sonarQube及Jenkins自動構建,所有的環境請按照筆者的要求搭建,以便大家可以成功搭建。

(1)Java環境1.8
(2)Maven環境
(3)mysql5.6—8.0,該版本之外的Mysql會報異常
(4)node.js
(5)SonarQube7.6
(6)Sonar-Scanner/Runner
(7)SVN代碼管理倉庫
(8)Jenkins平臺
(9)navicat可視化數據庫工具
(10)Jenkins Plugins筆者已經下載好了,主要是因為防止很多人插件下載失敗,所有的安裝文件都放在了網盤中,可自取

2.1 Java環境安裝

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

雙擊安裝JDK,細節這裡就不說了,大家不會的可以百度一下,安裝完JDK之後需要配置一下環境變量

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

2.2 Maven安裝

同樣將maven的安裝包解壓到任意一個磁盤中,同樣我們還是要配置一下Maven的環境變量

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

2.3 Mysql安裝

安裝mysql之前肯定有很多人會問我,為什麼要說這些基礎的東西,要知道,還是有很多帥氣的娃因為一些基礎得環境或者版本問題搞得

==腦殼都要撓禿咯!==

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

1. 將文件解壓入到自定義的目錄下【mysql如果安裝不對得話,可以百度下對應版本得安裝方式】
2. 配置my.ini,在根目錄下創建文件my.ini,並在文件中輸入以下代碼
[mysqld]
basedir ="C:\mysql-6.3-winx64" --此處配置自己得mysql路徑名
datadir ="C:\mysql-6.3-winx64\data" --此處配置自己得mysql路徑名
port=3306
server_id =10
character-set-server=utf8
[client]
port=3306
default-character-set=utf8
[mysqld_safe]
timezone="CST"
[mysql]
default-character-set=utf8
3. 配置環境變量, 將mysql/bin加入到PATH中
4. 找到cmd.exe,以管理員身份運行(確保是管理員)
5. 首先將MySQL加入到Windows的服務中,輸入命令:
mysqld --install
有時候沒有卸載乾淨,會提示The service already exists!
此時,以管理員身份運行cmd,
-輸入命令sc query mysql 查看名為mysql的服務
-輸入命令sc delete mysql,刪除該mysql 
-再執行mysqld --install 就能成功了
6. 開始初始化數據庫,輸入:
-mysqld --initialize --console
-mysqld --initialize --user=root --console   (記住初使密碼)
7.  輸入:net start mysql,稍後你也可以用net stop mysql關閉MySQL服務。
8.  然後就可以進入MySQL了,輸入:mysql -u root -p,此時會要求你輸入密碼
9. alter user user() identified by "123456";  改初使祕密
10. show databases ;展示數據庫列表;
11. use mysql  使用數據庫
12. show tables; 展示 表名

此處容易遇到兩個問題:
1.系統得C++環境問題導致得mysql安裝失敗,可以使用下面的工具C++環境補全工具安裝C++環境;
2.數據庫安裝完成後要先創建一個名字為==sonar==得數據庫,因為我們在下面sonarQube配置得時候是初始化sonar數據庫得文件得。
如果沒遇到那麼各位娃都是棒棒的。

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

2.4 node.js安裝

node.js也是必不可少得一環,如果沒有node.js環境,無法對代碼中得Css文件進行掃描。

安裝方式因截圖太多,這裡參考node.js安裝教程

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

2.5 SonarQube7.6安裝

--還是老套路,將壓縮包解壓後修改conf\sonar.properties-圖1配置文件,我這裡是本地
環境,如果是服務器上得Mysql,只需要將localhost轉換為對應得IP即可
sonar.jdbc.url    數據庫連接地址
sonar.jdbc.username 登陸數據庫得用戶名
sonar.jdbc.password 登陸數據庫得密碼
--SonarQube啟動後默認得賬號和密碼都是admin
--關閉SonarQube服務-圖3(需要關閉任務管理器中得所有java項目)
--重啟sonarQube服務-圖4
--再次訪問http://localhost:9000,會稍微有點慢,因為要初始化數據庫信息(user中可以查看到用戶信息

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

2.6 Sonar-Scanner掃描器安裝

Sonar-Scanner是一個利用SonarQube服務端分析代碼得命令行工具,可以把它簡單得理解為SonarQube得客戶端。Sonar-Scanner分析完成後會將數據post到SonarQube得數據庫,從而在sonarQube中進行展示,便於分析。

--將下載好得sonar-Scanner解壓編輯其中得conf\sonar-scanner.properties文件
sonar.host.url為我們客戶端得訪問地址,賬號密碼都為admin
--配置環境變量(路徑填寫你的安裝路徑)
新建變量,name=SONAR_SCANNER_HOME   value=D:\sonar\sonar-scanner-2.5
打開path,輸入 %SONAR_SCANNER_HOME%\bin;
sonar-runner -version,出現以下信息,則表示環境變量設置成功

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

2.7 SVN代碼管理倉庫安裝

到這裡,相信又有很多娃兒說筆者太過於囉嗦了,為什麼還不開始給老子掃描項目,莫急,磨刀不誤砍柴功,當萬事俱備得時候,掃描出BUG還不是分分鐘得事情。
說到代碼管理工具,首先想到得當然是git,gitlab,但是對於初學者來說Svn這種可視化得更適合,所有筆者這裡選擇了相對較為簡單得Svn。
依然是跑到我給大家提供得工具庫中下載下來先,然後解壓,點擊下面得而這個可愛得小圖標,啟動我們得Svn客戶端,然後創建一個倉庫,一直瘋狂點擊下一步就好了,就是這麼得easy。

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

創建一個本地倉庫

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

創建一個用戶,用來提交我們得代碼,然後在我們的文件夾下面創建一個文件夾來初始化我們的代碼倉庫Check Out,這裡就不多囉嗦

大家可以參考 SVN使用教程

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

2.8 Jenkins平臺安裝

Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。
Jenkins功能包括:
1、持續的軟件版本發佈/測試項目。
2、監控外部調用執行的工作。
第一種啟動方法,切換到jenkins.war存放的目錄,輸入如下命令:
$ java -jar jenkins.war
如果需要修改端口可以使用如下命令:
$ java -jar jenkins.jar--httpPort=8081
然後在瀏覽器中(推薦用火狐)輸入localhost:8081,localhost可以是本機的ip,也可以是計算機名。就可以打開jenkins。
第二種方法是用tomcat打開
解壓tomcat到某個目錄,如/usr/local,進入tomcat下的/bin目錄,啟動tomcat
將jenkins.war文件放入tomcat下的webapps目錄下,啟動tomcat時,會自動在webapps目錄下建立jenkins目錄,在地址欄上需要輸入localhost:8080/jenkins。
這裡我們就是採用第二種方法來搭建Jenkins,因為我們是在windows上搭建得,所以只要把jenkins.war放到tomcat得wapapps下然後啟動Tomcat就可以訪問Jenkins了

Jenkins入門教程

由於很多得小夥伴在下載插件這一步就跪了,所以本衝也為大家提供了已經下載好的插件,免費大甩賣,都在文末,自取,只需要將插件解壓放到家目錄.jenkins,替換掉plugins然後重啟就可以了。

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

至此,基本上需要得環境都已經安裝完了,下面就開始我們得掃描之旅吧。

3 使用說明

3.1利用Sonar-scanner命令分析本地項目

1.進入E:\sonarqube-7.6\bin\windows-x86-64(你的sonarqube安裝目錄),
只要在項目工程目錄下新建sonar-project.properties文件並配置如下圖-1
2.點擊StartSonar.bat啟動sonar服務
3.進入項目所在得路徑下執行sonar-scanner命令進行代碼掃描-圖2
4.運行最終結果顯示EXECUTION SUCCESS即成功-圖3
5.客戶端查看代碼掃描結果-圖4

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全
《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

3.2已編譯的maven項目,target文件中沒有內容但是還是要將其註明

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

sonar-project.properties文件中的內容

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

之後在cmd下進入工程目錄下運行:sonar-scanner

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

3.3已編譯的maven項目,使用maven分析器插件來分析項目

在maven的conf下的settings.xml下

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

在<profiles></profiles>節點中添加如下代碼
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<!-- SERVER ON A REMOTE HOST -->
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
之後在cmd下進入工程目錄下運行:mvn clean install sonar:sonar

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

3.4對JS、CSS、HTML進行代碼走查

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

sonar-project.properties文件中的內容
sonar.projectKey=control
sonar.projectName=control
sonar.projectVersion=1.0
sonar.sources=src,WebContent
sonar.java.binaries=build\classes
sonar.sourceEncoding=UTF-8
之後在cmd下進入工程目錄下運行:sonar-scanner

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.Jenkins集成SVN+maven+tomcat+sonarqube+sonar-scanner

 jenkins推薦的插件安裝中沒有sonarqube的安裝,需要到系統管理-插件管理-可選插件中搜索sonarqube,sonarqube插件名是sonarqube scanner for jenkins,直接安裝,安裝成功後在系統管理-系統設置下就可看到sonarqube servers,即可配置

4.1Jenkins For SonarQube配置

4.1.1.在系統管理—插件管理中安裝相應插件

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.1.2. 在系統管理—系統設置中對sonarqube servers進行設置

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.1.3獲取sonarqube servers的用戶令牌

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.1.4. 在系統管理—全局工具配置中對sonarqube scanner進行設置

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.1.5.安裝nodeJS插件,不安裝的話會導致CSS文件無法進行掃描

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.1.6. 在系統管理—全局工具配置中對nodeJS進行設置

此處的安裝目錄填寫你node.js的所在路徑

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.2對一個非maven項目項目進行代碼走查,構建一個自由風格的項目

4.2.1填寫項目配置信息

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.2.2 設置構建的保存數量和時間

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.2.3設置SVN的路徑和賬號

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

若是用Git管理代碼倉庫的可以參考如下配置
這裡是使用了Git來做源碼管理,gitlab作為源碼庫 項目分支填寫master

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.2.4設置項目輪詢,每5分鐘輪詢一次

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.2.5勾選nodeJS的環境

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.2.6構建觸發器、構建環境(sonar的賬號密碼)

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.2.7保存後對該項目進行“立即構建”操作,並可以查看sonarqube中項目的分析情況

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.3對一個maven項目項目進行代碼走查,構建一個maven項目

4.3.1填寫項目配置信息,設置構建的保存數量和時間

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.3.2設置SVN的路徑和賬號

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.3.3設置項目輪詢,每5分鐘輪詢一次

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.3.4勾選nodeJS的環境

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.3.5構建觸發器、構建環境(sonar的賬號密碼)

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.3.6在構建後操作中添加war包的操作

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

4.3.7保存後對該項目進行“立即構建”操作,並可以查看sonarqube中項目的分析情況

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

5 SonarQube相關指標說明

5.1SonarQube指標腦圖

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

5.2代碼質量閥

代碼質量的統計,可以幫助我們判斷項目是否可以投入生產環境

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

可根據實際的項目需求配置質量閥(sonar的默認配置)

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

6 結束語

下一篇文章:如何使用Jenkins構建搭載釘釘以及郵箱通知

我希望在看這個文章的你,在新的一年,順順利利,並能夠朝著定下得目標衝呀。

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

重點來了:
喜歡得朋友可以點個關注,今天這個文章真的是碼了我4個多小時呢,老腰都酸死了。

本篇文章所用到得所有工具都在本人得公眾號,【回覆】[sonarqube]免費領取。

CSDN鏈接地址:blog.csdn.net/lmarster/ar…

《碼了4個小時》SonarQube+Jenkins代碼質量檢查工具攻略大全

相關文章

帶你再看Vue文檔,你就順便學會了React(慎入!)

開源|AabResGuard:AAB資源混淆工具

SpringBoot系列JPA錯誤姿勢之Entity映射

Python植物大戰殭屍代碼實現:圖片加載和顯示切換