sonar 在maven project下的安裝與運(yùn)行
1. 下載sonar:http://www.sonarsource.org/downloads/
2. 隨便放到一個(gè)地方,解壓即可。做為winXP32的用戶,直接進(jìn)sonar-2.12\bin\windows-x86-32文件夾,run StartSonar.bat 。電腦情況像我一樣悲催的用戶多等一會(huì)兒,不要急于下一步,有可能導(dǎo)致出錯(cuò)。
3. 確保你的project是maven的(ant等有其它的辦法)。為了確保test不影響代碼分析,test目錄不可位于java目錄內(nèi),然后pom里面注意修改下test文件夾的相對(duì)路徑。這點(diǎn)我公司的project一直放個(gè)錯(cuò)的,每次都要手動(dòng)改來(lái)改去。
4. 在該project目錄下(有pom的地方)toDos,鍵入mvn sonar:sonar 即可。不需要先run mvn clean install,因?yàn)閞un sonar的任務(wù)在install之后,它會(huì)自動(dòng)先install。
5. 再多過(guò)會(huì)兒,等build successful出來(lái)后,進(jìn)入http://localhost:9000 查看即可。
--------------------------------------------------------------------------------------------------
可能會(huì)出現(xiàn)的小問(wèn)題:
report出來(lái)后,每次點(diǎn)project進(jìn)去的時(shí)候,就會(huì)提示你反復(fù)登錄,總也進(jìn)不去。
這和你安裝過(guò)程中某些奇怪的錯(cuò)誤相關(guān),此時(shí)可以刪掉project的target文件夾里面的東西,或者干脆卸掉sonar重裝(就是刪掉所有sonar解壓到各處的文件,項(xiàng)目里,temp下,.m2文件夾下都有),重啟運(yùn)行。中間過(guò)程要保證你能build不出錯(cuò),有時(shí)因?yàn)槟承゜uild中有error,也能出report,但是就可能出各種奇怪的錯(cuò)誤。
目前sonar似乎沒(méi)有解決這個(gè)不穩(wěn)定重現(xiàn)的bug。所以要保證安裝和運(yùn)行過(guò)程有足夠耐心。特別是啟動(dòng)sonar時(shí)間不夠就直接run mvn,常常會(huì)出這個(gè)錯(cuò)誤。
===============================================================
某些project是用js語(yǔ)言的:
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平級(jí):
<properties>
<sonar.language>js</sonar.language>
<sonar.dynamicAnalysis>false</sonar.dynamicAnalysis>
</properties>
4. Restart Sonar Web server;
5. 在該project級(jí)run maven,鍵入命令為:
注意:同一個(gè)project不支持多種語(yǔ)言的分析,這個(gè)project要么js要么java,就是這樣。據(jù)我觀察得分開run。
----------------------------------------------------------------------------------------------
可能會(huì)出現(xiàn)的小問(wèn)題:
沒(méi)有重啟sonar是會(huì)報(bào)找不到profile的錯(cuò)的。
還有2個(gè)語(yǔ)言的project你只能選一個(gè)來(lái)分析,把lang在mvn里設(shè)好。不然也會(huì)報(bào)錯(cuò)。
=================================================================
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平級(jí):
sourceDirectory內(nèi)是web項(xiàng)目所在地,上述修改是基于web項(xiàng)目在webapp下,而pom在src上一級(jí)文件夾。如現(xiàn)在項(xiàng)目在webapp文件夾下,pom文件也存在webapp下, 則sourceDirectory不填,為空。
4. 在pom文件所在級(jí)toDos,run以下命令:
-------------------------------------------------------
注意pom文件的修改:
web project存在于另一個(gè)project下的情況,需要修改上一層pom,需要將上一層project的packaging設(shè)為pom,web項(xiàng)目的pom文件中的packaging設(shè)為什么都行。不然run的時(shí)候maven就在上一層直接打包了,會(huì)報(bào)出找不到web項(xiàng)目的錯(cuò)誤,即使你寫好了web項(xiàng)目的pom中的依賴parent什么的。
============================================================
可能出現(xiàn)的錯(cuò)誤:
1. 出現(xiàn)Embedded error: Missing:
4. Restart Sonar Web server;
5. 在該project級(jí)run maven,鍵入命令為:
mvn sonar:sonar -Dsonar.language=js -Dsonar.dynamicAnalysis=
false
6. 進(jìn)入
http://localhost:9000 查看即可。注意:同一個(gè)project不支持多種語(yǔ)言的分析,這個(gè)project要么js要么java,就是這樣。據(jù)我觀察得分開run。
----------------------------------------------------------------------------------------------
可能會(huì)出現(xiàn)的小問(wèn)題:
沒(méi)有重啟sonar是會(huì)報(bào)找不到profile的錯(cuò)的。
還有2個(gè)語(yǔ)言的project你只能選一個(gè)來(lái)分析,把lang在mvn里設(shè)好。不然也會(huì)報(bào)錯(cuò)。
=================================================================
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平級(jí):
<
properties
>
<
sonar.language
>web</
sonar.language
>
<
sonar.web.sourceDirectory
>src/main/webapp</
sonar.web.sourceDirectory
>
<
sonar.dynamicAnalysis
>false</
sonar.dynamicAnalysis
>
</
properties
>
4. 在pom文件所在級(jí)toDos,run以下命令:
mvn sonar:sonar -Dsonar.language=web -Dsonar.dynamicAnalysis=
false
-Dsonar.web.sourceDirectory=src/main/webapp
如上所說(shuō)如果pom文件在webapp下,則命令為:mvn sonar:sonar -Dsonar.language=web -Dsonar.dynamicAnalysis=
false
-Dsonar.web.sourceDirectory=
5. 進(jìn)入
http://localhost:9000 查看即可。-------------------------------------------------------
注意pom文件的修改:
web project存在于另一個(gè)project下的情況,需要修改上一層pom,需要將上一層project的packaging設(shè)為pom,web項(xiàng)目的pom文件中的packaging設(shè)為什么都行。不然run的時(shí)候maven就在上一層直接打包了,會(huì)報(bào)出找不到web項(xiàng)目的錯(cuò)誤,即使你寫好了web項(xiàng)目的pom中的依賴parent什么的。
============================================================
可能出現(xiàn)的錯(cuò)誤:
1. 出現(xiàn)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即可。
.......
這類不是dependancy的jar缺失很奇怪,可以先clean install試試,成功后再run sonar即可。
posted on 2012-01-16 19:59 rosial 閱讀(2082) 評(píng)論(0) 編輯 收藏