1. 下載sonar:http://www.sonarsource.org/downloads/
2. 隨便放到一個地方,解壓即可。做為winXP32的用戶,直接進sonar-2.12\bin\windows-x86-32文件夾,run StartSonar.bat 。電腦情況像我一樣悲催的用戶多等一會兒,不要急于下一步,有可能導致出錯。
3. 確保你的project是maven的(ant等有其它的辦法)。為了確保test不影響代碼分析,test目錄不可位于java目錄內,然后pom里面注意修改下test文件夾的相對路徑。這點我公司的project一直放個錯的,每次都要手動改來改去。
4. 在該project目錄下(有pom的地方)toDos,鍵入mvn sonar:sonar 即可。不需要先run mvn clean install,因為run sonar的任務在install之后,它會自動先install。
5. 再多過會兒,等build successful出來后,進入
http://localhost:9000 查看即可。
--------------------------------------------------------------------------------------------------
可能會出現的小問題:
report出來后,每次點project進去的時候,就會提示你反復登錄,總也進不去。
這和你安裝過程中某些奇怪的錯誤相關,此時可以刪掉project的target文件夾里面的東西,或者干脆卸掉sonar重裝(就是刪掉所有sonar解壓到各處的文件,項目里,temp下,.m2文件夾下都有),重啟運行。中間過程要保證你能build不出錯,有時因為某些build中有error,也能出report,但是就可能出各種奇怪的錯誤。
目前sonar似乎沒有解決這個不穩定重現的bug。所以要保證安裝和運行過程有足夠耐心。特別是啟動sonar時間不夠就直接run mvn,常常會出這個錯誤。
===============================================================
某些project是用js語言的:1. 下載js插件:http://docs.codehaus.org/display/SONAR/JavaScript+Plugin#JavaScriptPlugin-UsageInstallation
2. Copy the jar into: sonar文件夾/extensions/plugins/ ;
3. 修改該project的pom.xml: 將下面這段加到pom里,與build平級:
<properties>
<sonar.language>js</sonar.language>
<sonar.dynamicAnalysis>false</sonar.dynamicAnalysis>
</properties>4. Restart Sonar Web server;5. 在該project級run maven,鍵入命令為:mvn sonar:sonar -Dsonar.language=js -Dsonar.dynamicAnalysis=
false
6. 進入
http://localhost:9000 查看即可。注意:同一個project不支持多種語言的分析,這個project要么js要么java,就是這樣。據我觀察得分開run。
----------------------------------------------------------------------------------------------
可能會出現的小問題:
沒有重啟sonar是會報找不到profile的錯的。
還有2個語言的project你只能選一個來分析,把lang在mvn里設好。不然也會報錯。
=================================================================
Web的分析:
1. 在這兒下載plugin的jar: http://repository.codehaus.org/org/codehaus/sonar-plugins/sonar-web-plugin/1.1/sonar-web-plugin-1.1.jar
2. Copy the jar into: sonar文件夾/extensions/plugins/ ,然后重啟server;
3. 修改該project的pom.xml: 將下面這段加到pom里,與build平級:
<
properties
>
<
sonar.language
>web</
sonar.language
>
<
sonar.web.sourceDirectory
>src/main/webapp</
sonar.web.sourceDirectory
>
<
sonar.dynamicAnalysis
>false</
sonar.dynamicAnalysis
>
</
properties
>
sourceDirectory內是web項目所在地,上述修改是基于web項目在webapp下,而pom在src上一級文件夾。如現在項目在webapp文件夾下,pom文件也存在webapp下, 則sourceDirectory不填,為空。
4. 在pom文件所在級toDos,run以下命令:mvn sonar:sonar -Dsonar.language=web -Dsonar.dynamicAnalysis=
false
-Dsonar.web.sourceDirectory=src/main/webapp
如上所說如果pom文件在webapp下,則命令為:mvn sonar:sonar -Dsonar.language=web -Dsonar.dynamicAnalysis=
false
-Dsonar.web.sourceDirectory=
5. 進入
http://localhost:9000 查看即可。
-------------------------------------------------------
注意pom文件的修改:
web project存在于另一個project下的情況,需要修改上一層pom,需要將上一層project的packaging設為pom,web項目的pom文件中的packaging設為什么都行。不然run的時候maven就在上一層直接打包了,會報出找不到web項目的錯誤,即使你寫好了web項目的pom中的依賴parent什么的。
============================================================
可能出現的錯誤:
1. 出現Embedded error: Missing:
----------
1) com.bull.framework:security-sso-web:jar:latest-SNAPSHOT
.......
2) com.bull.framework:framework-broker-ws:jar:latest-SNAPSHOT
.......
這類不是dependancy的jar缺失很奇怪,可以先clean install試試,成功后再run sonar即可。