最近有一段時間沒有用開源中國的git服務了,今天上去發現多了個sonar代碼分析工具,可能之前就上過線,沒怎麼認真瞭解,使用了一下,感受還不錯,可是開源中國的sonar分析速度太慢了,我能夠理解,畢竟這個服務這麼多人使用,而後我就打算在本身的電腦上安裝一個sonar的分析工具。java
首先搜索引擎找到sonar的官網,而後下載安裝包,而後查看document,最新版的安裝要求是有jdk8以及一個數據庫,例如mysql,postgres之類的。碰巧機子安裝了mysql和postgres兩個數據庫,可是我本身的機子安裝的是jdk7,那就下載jdk8吧,若是直接安裝的話,會覆蓋掉咱們的jdk7設置的環境變量。mysql
因此這裏安裝jdk8的時候要注意一點,如圖所示:
git
公共JRE不要勾選安裝,若是勾選的話,安裝以後就會覆蓋你以前設置的jdk7的環境變量。這裏咱們安裝jdk8主要是爲了sonar的運行而已。沒有安裝公共JRE的話,就是要你本身配置jdk8的環境變量。咱們把jdk8裝上。
而後解壓咱們下載的sonarqube-6.0的安裝包,打開以後根據官方文檔的指示,咱們須要到conf目錄下面去編輯sonar.properties文件,裏面主要是一些數據庫的配置和網站的配置。
其中幾個主要的參數是:sonar.jdbc.username,sonar.jdbc.password,sonar.jdbc.url
選擇本身的數據庫的jdbc url,我這裏選擇的是postgres,sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar
注意你須要使用命令行或者一些圖形界面,建立一個數據庫,我這裏使用navicat建立了一個sonar的數據庫,裏面的表,一會啓動以後,會自動建立。不用咱們管,咱們建好數據庫就好了。
還有幾個參數也要配置,sonar.web.host,sonar.web.port,host的話,默認是0.0.0.0的
這裏若是不修改的話,後面瀏覽器使用localhost會沒法訪問,我這裏修改爲127.0.0.1
端口的話,你要看一下有沒有衝突,沒有衝突的話,就不用修改使用默認的9000就行了
到此,已經配置完畢,其它一些細化的配置的話,我的以爲不必去修改,畢竟只是咱們本身本機使用做代碼分析而已。
接下來就是運行了,bin目錄下找到windows_64位的目錄,找到StartNTService.bat
注意了,不要直接點擊運行,由於bat這種文件是要開新的命令行來運行的,否則的話,你直接點的話,會閃一下而後就消失了。
打開cmd命令行,把文件拖過去回車運行。這時候因爲我機子安裝的是jdk7,而這個版本是須要jdk8的環境的,不急,立刻就能夠解決這個問題。
打開conf目錄,找到另外一個配置文件wrapper.conf
咱們能夠看到這樣一句話:
# Path to JVM executable. By default it must be available in PATH.
# Can be an absolute path, for example:
wrapper.java.command=I:/Java1_8/jre/bin/java
#wrapper.java.command=java
可使用環境變量的Java運行,也可使用絕對路徑運行。
那咱們就用絕對路徑吧,剛打開的時候絕對路徑的前面是加了#號的,咱們修改一下,如上面所示,個人jdk8是放在I盤的,讀者能夠根據本身的狀況填寫就好了。
而後點擊運行,通過一段時間等待,看到命令行上有三個up就成功了。而後打開瀏覽器訪問localhost:9000,出現sonar的管理界面就算安裝成功了。
接下來是漢化管理界面,英語閱讀沒問題的童鞋能夠不用漢化。不過我雖然看的懂,可是仍是以爲漢化後比較舒服,在sonar的官網上在文檔右側的tab找到Plugins,這裏我給出Plugin的連接,之後可能會有變化,
http://docs.sonarqube.org/display/PLUG/Plugin+Library
打開以後,在下方找到Localization,點擊Chinese,而後跳轉到一個Github的地址,https://github.com/SonarQubeCommunity/sonar-l10n-zh
根據read.me的提示下載好漢化jar包,而後放在sonar目錄下的extensions下的plugins目錄,而後重啓服務器,接下來訪問網址就能夠看到漢化後的界面了。github
咱們接下來使用一下sonar分析一下咱們本地的項目代碼了。根據官網文檔說明,
http://docs.sonarqube.org/display/HOME/SonarQube+Platform
web
get start的第三個步驟,分析源代碼,點擊以後咱們在下面找到scanner,掃描代碼的工具
sql
點擊最上面的Scanner,固然你要是其它類型的話,能夠按照本身類型選擇掃描器
http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
點擊下載以後,解壓以後,目錄裏面有bin,conf,lib
咱們打開bin,找到sonar-scanner.bat,接下來選擇你要分析的項目地址,假設個人項目在:
d:project/javaproject1
使用命令行cd到項目的根目錄,注意在根目錄下須要一個sonar-project.properties這樣的一個文件,用來講明項目的屬性,這個連接的文章有說明:http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
建立文件以後,編輯文件,我這裏的編輯是:
數據庫
# Required metadata
sonar.projectKey=projectkey
sonar.projectName=learn
sonar.projectVersion=1.0windows
# Comma-separated paths to directories with sources (required)
sonar.sources=src瀏覽器
# Language
sonar.language=java服務器
# Encoding of the source files
sonar.sourceEncoding=UTF-8
其中sources就是你的源碼目錄,個人項目是eclipse項目,因此是src目錄,其它類型的本身看着填寫。
而後在根目錄下執行sonar-scanner.bat命令,結果提示jdk7沒法運行,好吧咱們來繼續修改一下配置文件:
這個scanner沒有配置文件,咱們只能修改bat命令了。
首先咱們須要增長一個咱們的jdk8的環境變量,打開個人電腦,環境變量,系統變量輸入一個名字,注意不要是JAVA_HOME了,這裏我用來設置jdk8的變量名字叫作JAVA_1_8,而後填寫jdk8的路徑,和傳統設置java_home的方法是同樣的。
使用編輯器打開bat命令,全局搜索替換%JAVA_HOME%爲%JAVA_1_8%,替換以後保存,而後點擊運行,運行成功。
這裏分析只用了幾十秒鐘就搞定個人項目了,若是是用開源中國的osc的sonar的話,可能要半個小時。
接下來打開localhost:9000,能夠看到Projects裏面有咱們剛剛分析的項目,查看分析的效果,根據分析結果修改咱們的代碼。
介紹到此爲止,多謝閱讀,但願對你們有幫助。