findbugs与sonar

来源:互联网 发布:软件书生商务网 编辑:程序博客网 时间:2024/05/11 23:13

findbugs是sonar的子集,在sonar平台中可以直接导入findbugs的规则集。sonar比findbugs高了一个层级,多出了sonar不仅关注了常规静态bug,还关注到了如代码质量、包与包,类与类之间的依赖情况、代码耦合情况、类,方法。文件的复杂度、代码中是否包含大量复制粘贴的代码是质量低下的,关注到了项目代码整体的健康情况。不过个人在使用过程中findbugs本身的规则比sonar的官方规则更加实用,high级别的bug都是较为实用的bug,且能覆盖到一些性能方面的问题,sonar的规则,50%bug都是主要级别,其实危害不大。前期轻量级的静态bugs扫描可以选用findbugs,当项目持续稳定后可以选用sonar进行更深层次的代码质量控制。

安装方式比较:

findbugs可以直接在ide环境下面添加插件即可使用。

sonarqube需要配置一个数据库源。使用相对复杂。

sonarqube安装配置过程:

1、下载好sonarqube后,解压打开bin目录,启动相应OS目录下的StartSonar;

2、启动浏览器,访问http://localhost:9000,如出现欢迎页面则表示安装成功;

3、打开mysql,新建一个数据库(必须是新建的);

4、打开sonarqube安装目录下的\conf\sonar.properties文件,添加以下信息;

sonar.jdbc.url=jdbc:mysql://172.16.30.228:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformancesonar.jdbc.username=gmsdsonar.jdbc.password=gmsdtradesonar.sorceEncoding=UTF-8sonar.login=adminsonar.password=admin

url是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码,login是sonarqube的登录名,sonar.password是sonarqube的密码
5、重启sonarqube服务,再次访问http://localhost:9000,会稍微有点慢,因为要初始化数据库信息;
注意,启动sonarqube失败会自动关闭console窗口,要查看详细的报错信息可以查看安装目录下的logs/sonar.log文件,可能数据库连接失败等;
6、要使用sonarqube还需要下载sonar-scanner;
7、下载成功后打开sonar-scanner-2.5\conf\sonar-runner.properties文件,在mysql节点下添加以下信息

sonar.jdbc.url=jdbc:mysql://172.16.30.228:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformancesonar.jdbc.username=gmsdsonar.jdbc.password=gmsdtrade

注意:如果测试项目与服务器不在同一台机子,则需要添加服务器的IP:

#----- Default SonarQube serversonar.host.url=http://XXX.XXX.XXX.XXX:9000

8、配置环境变量
新建变量,name=SONAR_RUNNER_HOME。value=D:\sonar\sonar-scanner-2.5
打开path,输入%SONAR_RUNNER_HOME%\bin;
sonar-runner -version,出现以下信息,则表示环境变量设置成功
sonor-runner
9、打开要进行代码分析的项目根目录,新建sonar-project.properties文件,输入以下信息:

# must be unique in a given SonarQube instancesonar.projectKey=my:project# this is the name displayed in the SonarQube UIsonar.projectName=apiautocoresonar.projectVersion=1.0# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.# Since SonarQube 4.2, this property is optional if sonar.modules is set. # If not set, SonarQube starts looking for source code from the directory containing # the sonar-project.properties file.sonar.sources=src# Encoding of the source code. Default is default system encoding#sonar.sourceEncoding=UTF-8

其中:projectName是项目名字,sources是源文件所在的目录(sonar.sources=src表示与本properties文件 同级下的src文件夹);
10、设置成功后,启动sonarqube服务,并启动cmd,在cmd进入项目所在的根目录,输入命令:sonar-runner,分析成功后会出现下图
这里写图片描述
11、打开http://localhost:9000/,我们会看到主页出现了分析项目的概要图

原创粉丝点击