Sonar实战【开源代码质量管理平台】

随着项目的展开,代码的质量需要定期的检查,除了Code Review外,使用工具进行定期的检查规范等很重要,Sonar就是这样一个平台。

介绍

Sonar是一个开源代码质量管理平台。以下是它的主要特点:

  • 代码覆盖:通过单元测试,将会显示哪行代码被选中
  • 改善编码规则
  • 搜寻编码规则:按照名字,插件,激活级别和类别进行查询
  • 项目搜寻:按照项目的名字进行查询
  • 对比数据:比较同一张表中的任何测量的趋势

wps_clip_image-30921

安装

http://www.sonarsource.org/ 下载安装文件,解压到任意目录,执行对应32/64的 StartSonar.bat,默认在9000端口启动一个服务

Java项目实战

http://docs.codehaus.org/display/SONAR/Use+Sonar 有详细的文档,最快的方法是如下的形式

 

项目使用maven管理比较方便使用

1、http://docs.codehaus.org/display/SONAR/Analyse+with+a+simple+Java+Runner#AnalysewithasimpleJavaRunner-Installation 下载Sonar Runner并解压,将解压目录加入PATH中【以能找到sonar-runner.bat这个运行文件】

2、项目目录下放置如下的文件sonar-project.properties

# required metadata

sonar.projectKey=com.demo:mydemo

sonar.projectName=demo

sonar.projectVersion=1.0

# path to source directories (required)

sources=src/main/java

# path to test source directories (optional)

#tests=testDir1,testDir2

# path to project binaries (optional), for example directory of Java bytecode

#binaries=binDir

# path to project libraries (optional)

libraries=junit.jar

#Uncomment those lines if some features of java 5 or java 6 like annotations, enum, ...

#are used in the source code to be analysed

#sonar.java.source=1.5

#sonar.java.target=1.5

#Uncomment this line to analyse a project which is not a java project.

#The value of the property must be the key of the language.

#sonar.language=cobol

# advanced parameters

#my.property=value

以上是一个简单的配置,更详细的配置可参考 http://docs.codehaus.org/display/SONAR/Advanced+parameters

 

3、项目目录下执行sonar-runner,此时进行相应各种处理

4、进入http://localhost:9000 查看结果,类似如下

wps_clip_image-31025

可以看到项目的代码量、类分布等等各项指标,这个软件集成了很多的Java的一些开源的分析、测试等工具,因此具体的功能很丰富

Eclipse

如果在Eclipse中使用,参考如下的内容安装即可

http://docs.codehaus.org/display/SONAR/Installing+Sonar+Eclipse

Update site

http://dist.sonar-ide.codehaus.org/eclipse/

Eclipse Marketplace

http://marketplace.eclipse.org/content/sonar

http://nemo.sonarsource.org/

http://docs.codehaus.org/display/SONAR/1.+Install

Eclipse增强包括可以在本地进行分析

 

总结

Sonar作为一个平台,可以在服务端运行,并记录每次的质量情况,因此可以进行项目的代码质量的跟踪

如果只是本地分析 CodePro AnalytiX 这个开源的工具也很好用【参考http://code.google.com/intl/zh-CN/javadevtools/download-codepro.html

 

这个工具对于其他语言也提供了支持,官网列了很多,http://docs.codehaus.org/display/SONAR/Additional+Languages

比如Csharp的分析,就集成了Fxcop StyleCop等各种工具,不过相对java来说,工具还是少一些,和VS Team foundation想必,对于代码的管理有很多优点,实际项目中可以作为这个tfs的补充使用【可以量化的看到代码的演变历史】

posted @ 2011-09-14 10:25  2012  阅读(9392)  评论(8编辑  收藏  举报