您好,欢迎访问三七文档
《Sonar实战·从入门到进阶》作者:张晓松HeadsenHeadsen@163.comSonar实战·从入门到进阶本文档由Headsen于2012-12月翻译,2013年01月整理发布。文档说明鉴于Sonar的重要性,而且一直没有一分较为全面的中文文档,笔者制作本文档。本文档的主要内容由官方文档翻译而来,同时结合笔者的应用实践,对部分文档进行增删调整,同时引入了笔者的一些应用实例,以便更加具备可读性。本文文档通篇由headsen翻译,用于Sonar爱好者交流使用。请勿用于任何商业目的。本文档的任何问题,请联系我:headsen@163.com官方英文文档地址:神器Sonar随着产品规模的越来越大,产品维护的时间越来越长,代码质量的问题日趋凸显,后续的维护和扩展之痛,非亲历者无法体会。这时候,迫切需要一个全面的代码质量管理平台,来解决发现、管理、解决之前的、现在的质量问题,使产品能够轻装前进。我从Sonar2系列开始接触Sonar,一接触便开始着迷。从Sonar3系列开始,我就知道我再也无法拒绝她。Sonar是神器,围绕代码质量管理的神器。她几乎支持了你所能想到的一切代码质量问题:从静态分析到动态分析(单元测试)、从系统分析到人工评审、从历史分析到现在的版本分析、从Web客户端到Eclipse插件、从本地分析到远程分析、从集成其他代码分析插件(FindBugs、PMD等)到作为插件被CI持续集成、从邮件通信到任务平台交换(如JIRA)、从Web接口到插件开发,这些不一而足,再加上Sonar的开源特征、神一般的操作界面,没有人可以拒绝她的美丽。《Sonar实战·从入门到进阶》作者:张晓松HeadsenHeadsen@163.com1.新手上路1.1.Sonar安装1.1.1.环境要求Sonar代码分析工具是以JavaWeb应用的形式发布的。搭建Sonar代码分析环境需要相应的硬件、JDK、数据库、WEB服务器的要求。相关要求如下:硬件要求:内存Sonarweb应用需要至少500Mb内存磁盘空间项目越大、使用周期越长,Sonar占用的磁盘空间越大。参考:1300万行的项目,持续分析四年,占用10G磁盘空间。参考项目Nemo软件要求Java平台OracleJDK1.5、6、7支持IBMJDK不支持GCJ不支持OracleJRockit不支持数据库ApacheDerbySonar3.2之前版本支持。Derby和Sonar绑定发布的。尽管Derby数据库支持Sonar的全部功能,(升级不支持)。因此Sonar建议使用企业级数据库,而非Derby。H2同Derby数据库一样。绑定发布,但是不建议使用。MicrosoftSQLServer支持2005版本,使用jTDS驱动。不支持微软驱动。精简版本支持。不支持2008版本。但是有用户成功使用。必须指定区分大小写,指定区分重音。MySQL支持5.X和6.X。Oracle支持Oracle10G、11G和试用精简版。驱动ojdbc14.jar不支持,只支持thin模式,不支持OCI。PostgreSQL支持8.3、8.4、9.0、9.1应用服务器Jetty6和Sonar绑定。ApacheTomcat支持5.5、6.0、7.0JBoss不支持GlassFish不支持。浏览器IE支持IE7+Firefox所有版本。Chrome近期稳定版本,12版本测试通过。《Sonar实战·从入门到进阶》作者:张晓松HeadsenHeadsen@163.comOpera未经测试Safari近期稳定版本1.1.2.安装Sonar作为一个代码分析平台,Sonar由以下三部分构成:一个数据库:存放配置信息和分析结果信息;一个WEB服务器:发布应用,在线浏览、配置分析;一个客户端:执行源代码分析。1.1.2.1.数据库安装在环境要求部分,已经罗列了Sonar支持的数据库类型。如果只是做一个测试或Demo,你可以使用Sonar附带的H2或Derby。它们不需要任何安装。如果使用其他数据,仅仅需要创建一个数据库或表空间,提供Sonar增删改查的数据库权限的帐号。表和索引将在Sonar第一次运行时创建。笔者推荐使用MySQL数据库,推荐使用数据库编码为UTF-8。1.1.2.2.安装Sonar应用下载Sonar发布包,解压到本地磁盘路径下。、配置数据库一般我们不使用Sonar自带的内建数据库,因此数据更改Sonar发布程序的数据源。在Sonar解压包下,编辑conf/sonar.properties文件,可以指定新的特定数据。该文件中所有注释掉的数据库连接模板都是支持的。只需要去除注释,更改为自己的数据库连接即可。同时将默认的自带数据库的链接注释掉。一般需要配置以下属性•sonar.jdbc.url:数据库连接地址•sonar.jdbc.driver:驱动类•sonar.jdbc.user:数据库用户名•sonar.jdbc.password:密码如果使用Oracle数据库,将JDBCDriver包,放在/extensions/jdbc-driver/oracle/.下。其他数据库的驱动包已经放在默认的路径下。《Sonar实战·从入门到进阶》作者:张晓松HeadsenHeadsen@163.com2、启动SonarServerSonar应用默认监听9000端口。通过访问可以在conf/sonar.properties文件更改:sonar.web.host:192.0.0.1sonar.web.port:80sonar.web.context:/sonar执行下面脚本可以启动Sonar应用:在Linux/MacOS:bin/YOUROS/sonar.shstart在Windows:bin/windows-x86-32/StartSonar.bat对于其他平台,参考InstallingonAIX,HPUXorSolaris启动Sonar应用,后就可以通过浏览器访问Sonar的浏览页面了。这是内容是空的。3、高级属性在上面的建议安装中,注意:这样使用的Sonar的内置Web服务器。你可以将Sonar发布在其他服务器,如Tomcat上。你还可以在Windows和Linux配置Sonar服务;你还可以通过代理运行Sonar。后续专门的章节讲述这些高级特性。1.1.2.3.安装客户端除了数据库和Web应用外,Sonar还有很重要的一部分客户端程序。客户端程序用于对具体的程序工具进行分析,不同的语言,不要的项目构建类型可以使用不同的客户端程序。Sonar提供很多类型的客户端,可以根据项目构建类型选择最佳方案:SonarRunner:推荐默认客户端,如果你不知道选择哪个分析你的项目就是使用它把。.Maven:如果项目Maven构建则推荐使用对于的Maven插件包;AntTask:如果项目Ant构建则推荐;.CIEngine:持续集成,请参考相关文档,笔者暂时不做翻译。文档地址Hudson/Jenkinsplugin或Bambooplugin或AnthillProplugin.注意:即便没有对应的插件,其他CI引擎也可使用。在对应的详细章节中,将重点讲述各类型客户端的使用。《Sonar实战·从入门到进阶》作者:张晓松HeadsenHeadsen@163.com1.1.3.Sonar客户端Sonar的安装难点之一就在于各种客户端的选择、配置和集成等。本文档将次章节作为“安装Sonar”的并行章节阐述。1.1.3.1.安装配置SonnarRunnerSonarRunner是最常用的分析客户端之一,可以对绝大多数类型的项目进行分析。下载地址:下载目录。现在的版本是sonar-runner-2.0.zip安装要求:JDK1.5或更高。安装过程1、将下载包解压到一个本地路径下。2、将解压路径设置为环境变量:SONAR_RUNNER_HOME3、更改配置文件:$SONAR_RUNNER_HOME/conf/sonar-runner.properties。主要是数据源的配置,sonar-runner会将分析的结果存放在数据库中。如下面所示,只需将注释的模板适当位置去掉注释并更改为自己对应的Sonar配置即可。#-----DefaultSonarserver#sonar.host.url==jdbc:postgresql://localhost/sonar#sonar.jdbc.driver=org.postgresql.Driver#-----MySQL#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8#sonar.jdbc.driver=com.mysql.jdbc.Driver#-----Oracle#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE#sonar.jdbc.driver=oracle.jdbc.driver.OracleDriver#-----Globaldatabasesettings#sonar.jdbc.username=sonar#sonar.jdbc.password=sonar#-----Defaultdirectorylayout#sonar.sources=src/main/java#sonar.tests=src/test/java《Sonar实战·从入门到进阶》作者:张晓松HeadsenHeadsen@163.com#sonar.binaries=target/classes4、将$SONAR_RUNNER_HOME/bin添加到Path环境变量中。5、可以通过Shell或命令行检查安装情况,输入'sonar-runner.bat-h'(Linux输入'sonar-runner-h'),将会得到以下信息:usage:sonar-runner[options]Options:-h,--helpDisplayhelpinformation-X,--debugProduceexecutiondebugoutput-D,--defineargDefineproperty要获得更多的信息,命令增加参数-Dsonar.verbose=true即可。使用SonarRunner执行Sonar具体分析请参考相关章节。1.1.3.2.安装配置Maven分析客户端支持Maven2.0.10,2.1.x,2.2.xor3.x。若没有安装Maven,请下载Maven。Maven相关配置由于基于Maven进行分析时,需要使用Maven的插件指令处罚Sonar分析,所以需要对Maven的全局配置进行修改。编辑setting.xml:将以下配置放在对于的XML节点,同时将相关配置更改为自己配置。settingsprofilesprofileidsonar/idactivationactiveByDefaulttrue/activeByDefault/activationproperties!--EXAMPLEFORMYSQL--sonar.jdbc.urljdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8/sonar.jdbc.urlsonar.jdbc.driverClassNamecom.mysql.jdbc.Drive
本文标题:《Sonar实战
链接地址:https://www.777doc.com/doc-5482316 .html