静态代码检查工具Sonar的安装和使用
目录
静态代码检查工具Sonar的安装和使用 (1)
第一章、Sonar简介 (2)
第二章、Sonar原理 (3)
第三章、Sonarqube安装 (5)
3.1、下载安装包 (5)
3.2、数据库连接方式 (5)
3.3、启动 (7)
3.4、插件引用 (8)
第四章、SonarQube Scanner安装 (10)
4.1、下载安装 (10)
4.2、数据库连接方式 (12)
4.3、启动并执行代码检查 (13)
4.4、查看执行结果 (16)
4.5、启动失败原因 (18)
第一章、Sonar简介
Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。
Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。
支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。
开源中国代码质量管理系统->/
主要特点:
•代码覆盖:通过单元测试,将会显示哪行代码被选中
•改善编码规则
•搜寻编码规则:按照名字,插件,激活级别和类别进行查询
•项目搜寻:按照项目的名字进行查询
•对比数据:比较同一张表中的任何测量的趋势
第二章、Sonar原理
SonarQube 并不是简单地将各种质量检测工具的结果(例如FindBugs,PMD 等)直接展现给客户,而是通过不同的插件算法来对这些结果进行再加工,最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理。
SonarQube 在进行代码质量管理时,会从图1 所示的七个纬度来分析项目的质量。
图 1. 质量纬度
SonarQube 可以支持25+ 种编程语言,针对不同的编程语言其所提供的
分析方式也有所不同:
1. 对于所有支持的编程语言,SonarQube 都提供源了代码的静态分析功能;
2. 对于某些特定的编程语言,SonarQube 提供了对编译后代码的静态分析功能,比如java 中的class file 和jar 和C# 中的dll file 等;
3. 对于某些特定的编程语言,SonarQube 还可以提供对于代码的动态分析功能,比如java 和C# 中的单元测试的执行等。
SonarQube 平台的整体架构如图2 所示:
图 2. SonarQube 的服务架构
远程客户机可以通过各种不同的分析机制,从而将被分析的项目代码上传到SonarQube server 并进行代码质量的管理和分析,SonarQube 还会通过Web API 将分析的结果以可视化、可度量的方式展示给用户。
第三章、Sonarqube安装
3.1、下载安装包
从官网下载/下载并解压
3.2、数据库连接方式
3.2.1使用默认数据库
从sonarqube-5.4\conf\sonar.properties文件可以看出默认情况下是使用H2数据库,所以使用这种方式就不用配置数据库,直接启动即可。
如下图:
3.2.2使用oracle方式
以ORACLE XE11g版本为例
1、配置sonar.properties,去掉相关“#”号即可,如下图:
2、替换oracle驱动jar包。
默认情况下使用的是ojdbc14.jar,如下图:
需要替换成ORACLE XE11g版本的驱动包ojdbc6.jar。
可以从Oracle安装目录
oracle\product\11.2.0\server\jdbc\lib下拷贝。
如果直接使用ojdbc14.jar,那么sonar会启不动。
替换即可:
3、配置数据库连接串,取消相关oracle配置注释即可:
3.3、启动
点击StartSonar.bat启动即可
3.4、插件引用
将插件jar包下载,放入Plugins文件夹下。
如下面用了中文语言包。
备注:有点插件不支持,启动的时候因为放入的插件包导致启动失败。
第四章、SonarQube Scanner安装4.1、下载安装
(1)从官网下载/下载
(2)配置环境变量
4.2、数据库连接方式
1、使用默认数据库方式
不需要配置sonar-scanner-2.6.1\conf\sonar-scanner.properties,默认的使用H2数据库
2、使用oracle方式
取消注释,并配置oracle连接串如下:
备注:从注释“Global database settings (not used for SonarQube 5.2+)”可以看出5.2以
上版本后,不需要配置数据库。
如果配置了数据库也会无效,不支持数据库,只需配置sonarqube server的url,如下图运行日志。
4.3、启动并执行代码检查
(1)在项目根目录下新建sonar-project.properties文件
并配置代码如下:
(3)切换到项目工程目录下
D:
cd D:\HBGMS\trunk\dev1.0\code\framework
(4)执行sonnar-runner命令开始检查代码
执行成功:
4.4、查看执行结果
(1)登录sonar的web server服务器
http://127.0.0.1:9000/
(2)点击项目名
(3)查看代码检查结果
4.5、启动失败原因
(1)未启动sonarqube导致启动Scanner失败
第五章、Jenkins集成sonar。