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即可。