没有合适的资源?快使用搜索试试~ 我知道了~
首页Sonar实战(PDF)
资源详情
资源评论
资源推荐
《Sonar 实战·从入门到进阶》 作者:张晓松 Headsen Headsen@163.com
Sonar 实战·从入门到进阶
本文档由 Headsen 于 2012-12 月翻译,2013 年 01 月整理发布。
文档说明
鉴于 Sonar 的重要性,而且一直没有一分较为全面的中文文档,笔者制作本
文档。本文档的主要内容由官方文档翻译而来,同时结合笔者的应用实践,对部
分文档进行增删调整,同时引入了笔者的一些应用实例,以便更加具备可读性。
本文文档通篇由 headsen 翻译,用于 Sonar 爱好者交流使用。请勿用于任何
商业目的。
本文档的任何问题,请联系我:
headsen@163.com
http://weibo.com/headsen
官方英文文档地址:http://docs.codehaus.org/display/SONAR/Documentation
神器 Sonar
随着产品规模的越来越大,产品维护的时间越来越长,代码质量的问题日趋
凸显,后续的维护和扩展之痛,非亲历者无法体会。这时候,迫切需要一个全面
的代码质量管理平台,来解决发现、管理、解决之前的、现在的质量问题,使产
品能够轻装前进。
我从 Sonar2 系列开始接触 Sonar,一接触便开始着迷。从 Sonar3 系列开始,
我就知道我再也无法拒绝她。
Sonar是神器,围绕代码质量管理的神器。她几乎支持了你所能想到的一切代
码质量问题:从静态分析到动态分析(单元测试)、从系统分析到人工评审、从
历史分析到现在的版本分析、从Web客户端到Eclipse插件、从本地分析到远程分
析、从集成其他代码分析插件(FindBugs、PMD等)到作为插件被CI持续集成、
从邮件通信到任务平台交换(如JIRA)、从Web接口到插件开发,这些不一而足,
再加上Sonar的开源特征、神一般的操作界面,没有人可以拒绝她的美丽。
《Sonar 实战·从入门到进阶》 作者:张晓松 Headsen Headsen@163.com
1. 新手上路
1.1. Sonar 安装
1.1.1. 环境要求
Sonar 代码分析工具是以 Java Web 应用的形式发布的。搭建 Sonar 代码分析环境需要
相应的硬件、JDK、数据库、WEB 服务器的要求。相关要求如下:
硬件要求:
内存 Sonar web 应用需要至少 500Mb 内存
磁盘空间
项目越大、使用周期越长,Sonar占用的磁盘空间越大。参考:1300 万行的项目,持续
分析四年,占用 10G磁盘空间。参考项目Nemo
软件要求
Java 平台
Oracle JDK 1.5、6、7 支持
IBM JDK 不支持
GCJ 不支持
Oracle JRockit 不支持
数据库
Apache Derby Sonar 3.2 之前版本支持。
Derby 和 Sonar 绑定发布的。尽管 Derby 数据库支持 Sonar 的全部功能,(升级不支
持)。因此 Sonar 建议使用企业级数据库,而非 Derby。
H2 同 Derby 数据库一样。绑定发布,但是不建议使用。
Microsoft SQL
Server
支持 2005 版本,使用 jTDS 驱动。不支持微软驱动。精简版本支持。
不支持 2008 版本。但是有用户成功使用。
必须指定区分大小写,指定区分重音。
MySQL 支持 5.X 和 6.X。
Oracle 支持 Oracle10G、11G 和试用精简版。
驱动 ojdbc14.jar 不支持,只支持 thin 模式,不支持 OCI。
PostgreSQL 支持 8.3、8.4、9.0、9.1
应用服务器
Jetty 6 和 Sonar 绑定。
Apache Tomcat 支持 5.5、6.0、7.0
JBoss 不支持
GlassFish 不支持。
浏览器
IE 支持 IE7+
Firefox 所有版本。
Chrome 近期稳定版本,12 版本测试通过。
《Sonar 实战·从入门到进阶》 作者:张晓松 Headsen Headsen@163.com
Opera 未经测试
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 发布包,解压到本地磁盘路径下。
http://www.sonarsource.org/downloads/
1、配置数据库
一般我们不使用 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 实战·从入门到进阶》 作者:张晓松 Headsen Headsen@163.com
2、启动 Sonar Server
Sonar 应用默认监听 9000 端口。通过 http://localhost:9000 访问
可以在 conf/sonar.properties 文件更改:
sonar.web.host : 192.0.0.1
sonar.web.port: 80
sonar.web.context: /sonar
执行下面脚本可以启动 Sonar 应用:
在 Linux/Mac OS: bin/<YOUR OS>/sonar.sh start
在 Windows: bin/windows-x86-32/StartSonar.bat
对于其他平台,参考 Installing on AIX, HPUX or Solaris
启动 Sonar 应用,后就可以通过浏览器访问 Sonar 的浏览页面了。这是内容是空的。
3、高级属性
在上面的建议安装中,注意:这样使用的 Sonar 的内置 Web 服务器。你可以将 Sonar
发布在其他服务器,如 Tomcat 上。
你还可以在 Windows 和 Linux 配置 Sonar 服务;你还可以通过代理运行 Sonar。后续 专
门的章节讲述这些高级特性。
1.1.2.3. 安装客户端
除了数据库和 Web 应用外,Sonar 还有很重要的一部分客户端程序。客户端程序用于对
具体的程序工具进行分析,不同的语言,不要的项目构建类型可以使用不同的客户端程序。
Sonar 提供很多类型的客户端,可以根据项目构建类型选择最佳方案:
Sonar Runner: 推荐默认客户端,如果你不知道选择哪个分析你的项目就是使用它把。.
Maven: 如果项目 Maven 构建则推荐使用对于的 Maven 插件包;
Ant Task:如果项目 Ant 构建则推荐;.
CI Engine: 持续集成,请参考相关文档,笔者暂时不做翻译。文档地址Hudson/Jenkins plugin
或 Bamboo plugin 或AnthillPro plugin. 注意:即便没有对应的插件,其他CI引擎也可使
用。
在对应的详细章节中,将重点讲述各类型客户端的使用。
《Sonar 实战·从入门到进阶》 作者:张晓松 Headsen Headsen@163.com
1.1.3. Sonar 客户端
Sonar 的安装难点之一就在于各种客户端的选择、配置和集成等。本文档将次章节作为
“安装 Sonar”的并行章节阐述。
1.1.3.1. 安装配置 Sonnar Runner
Sonar Runner 是最常用的分析客户端之一,可以对绝大多数类型的项目进行分析。
下载地址:
下载目录。现在的版本是sonar-runner-2.0.zip
安装要求:JDK1.5 或更高。
安装过程
1、将下载包解压到一个本地路径下。
2、将解压路径设置为环境变量:SONAR_RUNNER_HOME
3、更改配置文件:$SONAR_RUNNER_HOME/conf/sonar-runner.properties。
主要是数据源的配置,sonar-runner 会将分析的结果存放在数据库中。如下面所示,只
需将注释的模板适当位置去掉注释并更改为自己对应的 Sonar 配置即可。
#----- Default Sonar server
#sonar.host.url=http://localhost:9000
#----- PostgreSQL
#sonar.jdbc.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
#----- Global database settings
#sonar.jdbc.username=sonar
#sonar.jdbc.password=sonar
#----- Default directory layout
#sonar.sources=src/main/java
#sonar.tests=src/test/java
剩余87页未读,继续阅读
不想吃饭
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 数据结构1800题含完整答案详解.doc
- 医疗企业薪酬系统设计与管理方案.pptx
- 界面与表面技术界面理论与表面技术要点PPT学习教案.pptx
- Java集合排序及java集合类详解(Collection、List、Map、Set)讲解.pdf
- 网页浏览器的开发 (2).pdf
- 路由器原理与设计讲稿6-交换网络.pptx
- 火电厂锅炉过热汽温控制系统设计.doc
- 企业识别CIS系统手册[收集].pdf
- 物业管理基础知识.pptx
- 第4章财务预测.pptx
- 《集成电路工艺设计及器件特性分析》——实验教学计算机仿真系.pptx
- 局域网内共享文件提示没有访问权限的问题借鉴.pdf
- 第5章网络营销策略.pptx
- 固井质量测井原理PPT教案.pptx
- 毕业实习总结6篇.doc
- UGNX建模基础篇草图模块PPT学习教案.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0