基於JDK1.7代碼審查平臺sonarqube安裝
sonarqube已經更新到7.0版本了,但是從5.6版本以後就只支持JDK1.8了,網上大部分資源也都是基於JDK1.8的,在這方面走了不少坑,尤其是在後面用Maven-scanner掃描Maven項目的時候,各種報錯。經過幾天摸索終於在Linux中搭建成功了,JDK版本用的是1.7,因此本文對於項目JDK版本用的是1.7的想搭建sonarqube平臺的同學非常有用。
運行成功後界面如下
安裝sonarqube
官網上下載sonarqube4.5.7(LTS version) zip包,該版本是適用於JDK1.7的最新版本,該zip包在windows和Linux等版本中均可以運行,不同的是啓動路徑和方法不一樣而已。
* sonarqube配置文件
sonarqube平臺數據包括代碼審查結果都是保存在數據庫中的,當然默認不配置的情況下是使用H2內存數據庫的,但一般不推薦,本文配置的是mysql數據庫。在conf目錄下找到sonar.properties並設置相關參數如下,其中sonar.jdbc.username
和sonar.jdbc.password
分別是mysql數據庫的賬號和密碼,sonar.jdbc.url
是數據庫的地址。還有其它參數如端口號sonar.web.port=9998
等參數,可以搜索下其它資源配置方法,默認的啓動端口號是9000,本例配置的是9998.
添加中文插件
安裝啓動之前先把所需要的相關插件放在安裝包中,這樣啓動好了之後就可以直接使用。以中文插件l10n
爲例,首先下載插件,代碼託管到GitHub中,4.5.7的版本選擇sonar-l10n-zh-plugin-1.8
版本,git中沒有jar資源下載,所以只能下載源碼後進行maven編譯,將編譯後的jar包放在sonarqube-4.5.7/extensions/plugins
目錄下。運行sonarqube
進入bin目錄下找到相應的系統版本,Linux64的運行目錄文件是sonarqube-4.5.7/bin/linux-x86-64
,進入到該目錄輸入sh sonar.sh start
即可。如果提示沒有執行權限,則需要先將sonar.sh
和wrapper
文件先賦予執行權限chmod a+x sonar.sh
、chmod a+x wrapper
。至此sonarqube安裝完畢,是不是很簡單?
其它命令sh sonar.sh start | stop | restart | status
. windows下則直接運行對應目錄下StartSonar.bat
文件即可
Maven項目掃描配置
- Maven配置
現在很多項目都是Maven組織的,那麼sonarqube如何掃描Maven項目呢?
打開Maven的配置文件settings.xml
添加如下配置,主要配置的是sonarqube數據庫及sonarqube的。
<!-- pluginGroups標籤中添加後如下 -->
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<!-- profiles標籤中添加後如下 -->
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://192.168.1.2:3306/test</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>root</sonar.jdbc.username>
<sonar.jdbc.password>admin</sonar.jdbc.password>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>http://192.168.1.2:9998</sonar.host.url>
</properties>
</profile>
</profiles>
sonarqube-scanner-maven在掃描Maven項目的時候比較消耗JVM內存資源,所以最好配置JVM內存,即設置MAVEN_OPTS=-Xmx512m
,以防佔用過多的內存資源。
Linux中Maven配置環境變量,編輯/etc/profile
文件加入export MAVEN_OPTS="-Xmx512m"
即可。在Windows系統中,則在Maven打包之前set MAVEN_OPTS=-Xmx512m
或在環境變量中配置MAVEN_OPTS
參數即可。
- 運行Maven項目,掃描代碼
本例JDK1.7+Maven3.3.9版本下運行命令爲mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar -Dmaven.test.skip=true
.
如果是比較高的sonarqube版本+JDK1.8,則運行命令爲mvn clean install sonar:sonar -Dmaven.test.skip=true
.
以下命令沒有權限校驗的,意味着所有的用戶都可以通過以下命令將某個Maven項目的審查結果上傳至sonarqube平臺。如果需要限制某些用戶,則運行命令爲
mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar -Dmaven.test.skip=true -Dsonar.login=admin -Dsona.password=admin
同時需要在平臺上更改用戶權限,如下圖