rosial

lost memory
数据加载中……

sonar 在maven project下的安装与运行



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




posted on 2012-01-16 19:59 rosial 阅读(2071) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问