1. 程式人生 > >jenkins與SonarQube集成

jenkins與SonarQube集成

完成 嘗試 r.java can exec htm 報錯 圖片 pom.xml

一、SonarQube

我的理解是,SonarQube就是一個對代碼進行分析的平臺,其功能可以通過插件擴展。支持多種語言,也支持靜態代碼檢查、發現潛在bug等。

以下是參考信息:

維基百科:https://zh.wikipedia.org/wiki/SonarQube

官網:https://www.sonarqube.org/

文檔:https://docs.sonarqube.org/display/SONAR/Documentation

二、下載安裝

1.下載

訪問官網:https://www.sonarqube.org/

點擊“Download”,

技術分享圖片

然後我們可以選擇長期支持版本或者最近的穩定版本,

技術分享圖片

2.安裝運行

該軟件是綠色版,不需要安裝,手動解壓即可。windows或者linux都支持。

解壓後,如果是windows,執行以下路徑的bat(如果是32位操作系統,請切換到bin\windows-x86-32目錄)

技術分享圖片

運行如下,如果顯示如下圖,表示已成功啟動SonarQube。

技術分享圖片

3.嘗試使用

訪問:

http://localhost:9000

用戶名/密碼是:admin/admin

接下來可以照著網頁上的提示,完成token生成等,該token用處很大,需要牢記。

針對maven項目,我們可以測試一下。

找到想要測試的項目的根路徑,比如:

技術分享圖片

在命令行執行:(sonar.login就是上文生成的token值)

mvn sonar:sonar   -Dsonar.host.url=http://localhost:9000   -Dsonar.login=429cf9cccb1c1dc96aea29c2f69f74669ed7fdc5

執行結果如下:

技術分享圖片

根據以下日誌,

[INFO] ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index
/com.ceiec:bdmp

我們訪問:http://localhost:9000/dashboard/index/com.ceiec:bdmp,頁面如下:

技術分享圖片

SonarQube的功能很多,以上只展示了基本功能。

更多功能可以參考官方文檔:

https://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes

三、與jenkins集成

參考:

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

1.安裝

依次進入,“系統管理”--》“管理插件”--》“可選插件”--》“SonarQube Scanner for Jenkins”,然後點“直接安裝”。安裝完成後,重啟一下。

2.配置SonarQube服務器的地址

依次進入,“系統管理”--》“系統設置”,配置以下部分:

技術分享圖片

3.配置SonarQube Scanner

依次進入,“系統管理”--》“全局工具配置”,配置以下部分:

技術分享圖片

我這邊采用了自動安裝,但是,這個“自動安裝”的運行條件是:

當你在job中配置了,要使用該指定名稱“my-jenkins-SonarQube Scanner”的工具(當然,如果不指定,因為沒有默認值,所以會在job配置頁面上報錯,紅字提示),然後在“立即構建”時,才會去下載該工具。

並不是這裏點了自動安裝,點擊保存後,馬上就會下載安裝的。

4.配置job

SonarQube,針對java來說,是基於class來檢測的,所以在這前面,需要配置一個maven的編譯步驟。

如下:

技術分享圖片

上圖中,要指定給SonarQube Scanner使用的jdk,在Analysis properties中,

“sonar.projectKey”可隨意指定;

“sonar.sources”指定了我的源文件路徑;

“sonar.java.binaries”是編譯後的class文件的路徑。

以下是我的jenkins的該job的工作目錄樹(請讀者參考自己的目錄配置):

技術分享圖片

5.構建結果

技術分享圖片

6.異常情形

INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: Error when executing blame for file bdmp-api/pom.xml
ERROR: Caused by: svn: E170001: Authentication required for ‘<http://192.168.19.225:80> CollabNet Subversion Repository‘
ERROR: 
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
WARN: Unable to locate ‘report-task.txt‘ in the workspace. Did the SonarScanner succedeed?
ERROR: SonarQube scanner exited with non-zero code: 1
Finished: FAILURE

解決方法:
登錄SonarQube,按下圖所示,關閉“從scm獲取blame信息”即可:

技術分享圖片


jenkins與SonarQube集成