SonarQube4.4+Jenkins进行代码检查实例之二
在 《 SonarQube4.4+Jenkins进行代码检查实例之一》 中介绍了不编译只检查的方式。
但是有些代码检查需要使用字节码,比如Findbugs的检查依赖于字节码,实例一中只提取源代码,就不能进行Findbugs的检查。
要进行Findbugs检查就需要编译。以下实例操作来演示如何搭建
1,首先当然是要下载最新的Findbugs http://docs.codehaus.org/display/SONAR/FindBugs+Plugin ,当前最新版是V3.0, supports analysis of Java 8 bytecode but requires Java 1.7 to run (see Compatibility section)。 下载后将相应Jar包存放到 \sonarqube-4.4\extensions\plugins 下, 其中\sonarqube-4.4是SonarQube的安装目录,然后重启SonarQube
1b, 也可以在SonarQube的update center中下载,下载后按提示重启SonarQube即可。
2,以admin登录到Sonar,将缺省的Quality Profiles改为 Sonar way with Findbugs
3,在Jenkins中配置项目,笔者以Maven3为例,选择 maven2/3项目
4,按Maven项目正常配置,在Goals and options留空,采用缺省
5,在Post Steps中加入 Windows Batch command, 命令为: SonarQube Runner V2.4安装位置\bin\sonar-runner.bat
6,配置项目,要告知SonarQube编译结果在哪里,并且加入更新到SVN下,如下:
# required metadata sonar.projectKey=Keqiang:CodeKatabySonarRunner sonar.projectName=CodeKatabySonarRunner sonar.projectVersion=2.0.0 # path to source directories (required) sonar.sources=src/main/java # path to project binaries (optional), for example directory of Java bytecode sonar.binaries=target/classes
7,在Jenkins中立即构建 此Job
8,访问 http://localhost:9000 来看看SonarQube的结果,可以看到根据Findbugs的规则新发现的issue
说明1: Sonar way with Findbugs 是SonarQube缺省的选择,一共497条规则。SonarQube提供了方便的界面来修改。
说明2:SonarQube就发现的Issue设立了总指标Technical Debt,以工作量来表达需要多少时间修复这些issue。
小结:以上配置是简单的。说白了,只需交待编译结果在哪里就可以了。
以上两个实例,希望读者能够了解搭建SonarQube是多么容易。
Jenkins并不是必须的,利用Sonar-Runner完全可以达到相同相关。加入Jenkins支持之后,就能根据Svn操作来自动启动。