在最新的《 关于代码审查的几点建议》中再次提到了代码分析:

6、尽量使用静态代码分析工具以提高审查效率。

笔者之前也谈到过多次代码分析、代码检查,见:

最近在自己电脑上更新了SonarQube,来分享下具体做法。

本文先来介绍最简单的做法:利用Jenkins拉取代码不编译只扫描。

下载后解压,先不着急启动。不知道为什么,SonarQube4.4没有包括SonarQube最新推荐的规则引擎。

2,在相同下载页,下载SonarQube Runner V2.4,解压。采用全部缺省配置,不必修改。

3,下载SonarQube最新推荐的Java分析引擎,参见http://docs.codehaus.org/display/SONAR/Java+Plugin 。

下载最新的 Java Plugin V2.4, 然后将其放到  \sonarqube-4.4\extensions\plugins 下, 其中\sonarqube-4.4是SonarQube的安装目录,然后移除相同目录下的 Surefire, JaCoCo, and Squid for Java plugins 以及 findbugs,即是只留下 Java Plugin V2.4,其它都移除。

4,为快速试用,利用SonarQube缺省数据库,到bin目录下选择合适环境目录来启动SonarQube。

5,利用Jenkins的windows batch command来启动sonar,所以对Jenkins版本没有特别要求,当然使用最新版Jenkins是最好的。笔者的Jenkins是V1.556。

6,在Jenkins中创建Job,选择“构建一个自由风格的软件项目”

7,在源码管理中加入源码的位置,笔者使用的是SVN,选择Subersion,输入Repository URL

8,在构建触发器中,笔者选择了Build periodically,输入H H * * *, 意味着每天在Jenkins空闲的时候执行一次

9,在构建部分,选择增加构建步骤,选择Execute Windows batch command, 在命令框中输入

SonarQube Runner V2.4安装位置\bin\sonar-runner.bat

10,配置项目,在要分析的源代码根目录(与Repository URL要对应一致)下新建名为 sonar-project.properties 的文件,至少包括如下:

# required metadata ,Keqiang:AgileJerryPomodoro是笔者项目的Key

sonar.projectKey=Keqiang:AgileJerryPomodoro

#AgileJerryPomodoro是笔者项目的名称

sonar.projectName=AgileJerryPomodoro

sonar.projectVersion=0.5.0

# path to source directories (required),从源代码根目录为基准

sonar.sources=src

11,将sonar-project.properties 加入到SVN。

12,到Jenkins中立即构建 刚刚建立的Job

说明1:以上利用了SonarQube的缺省规则集:Sonar way,共115条规则,这是sonarqube多年来积累的精华规则。

SonarQube当前已经明确宣称:“ We highly recommend that you limit your  Quality Profiles to from the SonarQube engine

because we believe they are faster, more accurate (fewer false positives and false negatives), and more usable

(they have better descriptions, etc)."

说明2: Squid, Surefire and Jacoco have been rolled into this Java plugin. from Java plugin V2.4

以上动作最多1小时就能完成,对于Java,就能得到业界最先进的代码检查结果。

通过结果再来学习干净代码,是事半功倍的做法。

作者:zhangmike 发表于2014-9-9 8:52:39