在網上看了許多sonarQube的教程,首先這裏向大家說明下兩者的關係 sonarQube是一個(代碼質量管理平臺)開源平臺,用於管理Java源代碼的質量,通俗點說個人認爲其實類似於一個服務器,就像Tomcat或者是JBOSS一樣. 用服務器這個空架子肯定不能進行檢測代碼,而sonar-runner相當於是在這個平臺下測試的一個掃描代碼的工具,兩者配合着使用才能進行通用的自動化測試(適合任意工程使用,maven工程和ant工程也同樣適用)另有其他幾種情況,以後在慢慢陳述,開始進入正題,即怎麼樣進行測試 .
在這裏提出些建議:無論遇到什麼問題,我們從這是什麼,爲什麼,怎麼用切入問題的話,看待事物的角度就會加深一層。
以測試環境 win7 32/64
準備條件:jdk環境,1.5以上版本,已有的數據庫(oracle,mysql,sqlserver等)
測試 :
步驟1:安裝sonarQube
首先解壓sonarQube到任意目錄(目錄不要有中文)
eg:
這裏我用的是5.1.1版本,該版本的鏈接地址爲: http://www.sonarqube.org/downloads/,
這裏官網已經更新到了5.1.2版本,
sonarQube是不需要進行環境變量配置的,只需要將其解壓到指定目錄即可,並且是免安裝的,直接就可以使用,根目錄下的bin目錄進入後選擇相應的操作系統和位數,進入後點擊StartSonar.bat運行服務.這裏運行前必須裝好jdk,如果出現無法啓動服務,命令行出現wrapper stopped的情況,那麼重啓電腦,一般就會解決,啓動後在服務器上輸入localhost:9000(sonarQube的默認端口號) 點擊login,默認賬戶名和密碼爲 admin和admin.進入如果出現這個頁面就說明sonarQube平臺啓動成功了.(這裏小編已經把原有的英文替換成了中文,大家第一次進入時中文的哦),中文需要在官網下載插件進行安裝或者是在線安裝.
在線安裝的方式是:
settings(配置)-update center(升級中心)-available plugins(可用插件)-localization(本地化)-選擇Chinese Pack,點擊就會出現install按鈕,點擊安裝,重啓sonarQube之後就是中文了.
進去後在配置sonarQube的配置,配置文件在sonarQube安裝目錄下的conf目錄,進入後點擊sonar.properties,進行編輯
這裏填寫四個值,分別是
sonar.jdbc.username=root //數據庫用戶連接名
sonar.jdbc.password=hehaoyu //數據庫連接密碼
sonar.jdbc.url=jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance//數據庫鏈接
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver //數據庫驅動
注意:在sonarQube當中需要注意的是如果是Oracle數據庫的話需要添加oracle jdbc的jar包,其它sonarQube是自帶的,不用添加,Oracle的jar包在這個目錄下
步驟2:安裝sonar-runner
相同的方法解壓sonar-runner到指定的任意目錄,目錄也不要有中文,同樣也是免安裝
鏈接地址:http://www.sonarqube.org/downloads/
這裏,sonar-runner需要配置環境變量,聲明一個SONAR_RUNNER_HOME的變量名,變量值就是sonar-runner的安裝目錄,在這裏我的變量值就是 D:\sonar-runner-dist-2.4\sonar-runner-2.4,大家對應自己的目錄修改,然後再Path變量名下加入值%SONAR_RUNNER_HOME%\bin(注意變量值要用分號 ; 隔開)
然後配置sonar-runner的配置文件
點擊sonar-runner目錄下的conf,編輯sonar-runner.properties
sonar.host.url=http://localhost:9000 sonar本地ip地址
sonar.jdbc.url=jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8 Mysql本地鏈接地址
sonar.jdbc.username=root 數據庫連接賬號
sonar.jdbc.password=hehaoyu 數據庫連接密碼
sonar.login=admin sonarQube平臺登錄賬號
sonar.password=admin sonarQube平臺登錄密碼
步驟3:在想測試的任意一個在工程根目錄下新建立一個sonar-project.properties配置文件
裏面寫上:
# Required metadata
sonar.projectKey=Monkey
sonar.projectName=Monkey
sonar.projectVersion=15.07.28(建議版本號採用這種格式)
# Comma-separated paths to directories with sources (required)
sonar.sources=src
sonar.binaries=build (當時我寫的是這樣(build\classes\)結果報錯了,如果只寫上build目錄則不會報錯)
# Language
sonar.language=java
# Encoding of the source files
sonar.sourceEncoding=UTF-8
說明:sonar.projectKey=Monkey
projectKey與projectName和工程名字一樣也行,projectKey和projectName不一樣也可以,寫成一樣目的在於好區分
sources爲源碼目錄
build爲編譯後的classes目錄,sonar會自動遍歷所有目錄
language爲分析的語言
sourceEncoding源碼編碼格式
步驟4:執行命令行,生成結果
OA5就是當前項目的根目錄
先讓命令行進入到指定項目的目錄下,然後執行sonar-runner命令
(特別注意:由於命令這一形式建的多了,所以習慣性的把sonar-runner寫成了 sonar -runner,中間多了一個空格,當時我一直沒看出來是什麼原因,sonar-runner一定是緊挨着呢)
成功則會顯示
重新登錄到sonarQube主頁上,你會發現右邊多了一個項目的分析結果
下面就是我們想要的分析結果