SonarQube4.4+Jenkins进行代码检查实例之一

标签: sonarqube4 jenkins 代码 | 发表时间:2014-09-09 16:52 | 作者:zhangmike
出处:http://blog.csdn.net
在最新的《 关于代码审查的几点建议》中再次提到了代码分析:

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

笔者之前也谈到过多次代码分析、代码检查,见:
最近在自己电脑上更新了SonarQube,来分享下具体做法。
本文先来介绍最简单的做法:利用Jenkins拉取代码不编译只扫描。
1,首先下载最新的SonarQube,参见 http://www.sonarqube.org/downloads/    当前最新版是4.4
下载后解压,先不着急启动。不知道为什么,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
13,访问 http://localhost:9000  来看看SonarQube的结果
说明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 原文链接
阅读:99 评论:0 查看评论

相关 [sonarqube4 jenkins 代码] 推荐:

SonarQube4.4+Jenkins进行代码检查实例之二

- - CSDN博客推荐文章
在 《 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).

SonarQube4.4+Jenkins进行代码检查实例之一

- - CSDN博客研发管理推荐文章
在最新的《 关于代码审查的几点建议》中再次提到了代码分析: 6、尽量使用静态代码分析工具以提高审查效率. 笔者之前也谈到过多次代码分析、代码检查,见:. 关于代码评审的微博讨论汇集 . #敏捷有效实践# 每日代码自动检查 英文是daily code inspection. 对代码质量关注时,安排人工检查code review是需要的,但100% code review需要很多工作量,不是所有的组织值得这样做,而工具自动检查是只需少量人工建设配置,99%的组织值得采用.

Jenkins的plugin开发

- - CSDN博客研发管理推荐文章
       Jenkins强大的功能主要靠其丰富的plugin体现,之前的一篇博客《 Jenkins安装plugin》中介绍了如何找到并安装需要的plugin. 虽然目前已经有大量非常优秀的plugin可供使用,但是有时候仍需要自己开发一些满足项目特殊要求的plugin. 下面通过一个简单实例,介绍Jenkins的plugin的整个开发过程.

SonarQube和Jenkins的集成

- - 研发管理 - ITeye博客
在Java软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷. Java 静态代码分析(static code analysis)工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省软件开发和测试成 本. 目前市场上的 Java 静态代码分析工具种类繁多且各有千秋,因此本文将分别介绍现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),并从功能、特性等方面对它们进行分析和比较,希望能够帮助 Java 软件开发人员了解静态代码分析工具,并选择合适的工具应用到软件开发中.

Deploy the spring cloud project using jenkins

- - Telami
先简单记录下Jenkins部署maven聚合工程要点. Root pom配置成项目根目录的pom.xml. maven命令单独install 欲构建的项目. 选项后可跟随{groupId}:{artifactId}或者所选模块的相对路径(多个模块以逗号分隔). 表示同时处理选定模块所依赖的模块. 表示同时处理依赖选定模块的模块.

Jenkins: 使用Jenkins搭建持续集成(CI)环境

- - CSDN博客研发管理推荐文章
首先从官网 http://jenkins-ci.org/下载 Java Web Archive (.war). 例如我保存到 D:\jenkins\jenkins.war. 运行Jenkins需要JRE的支持Java5 or later. 默认会运行在8080端口,正常启动完成如下图. 我们可以在浏览器输入127.0.0.1:8080来查看,如图我们的Jenkins已经跑起来了.

基于Jenkins的持续集成

- - ITeye博客
Jenkins是一个持续集成工具,前身叫做Hudson,在实际项目应用中非常重要,本文介绍这一工具的使用方法. 首先我们访问Jenkins的网站:. Jenkins 的网址是: http://jenkins-ci.org/. 从网站下载Jenkins: http://mirrors.jenkins-ci.org/war/latest/jenkins.war.

使用Jenkins 实现自动化构建

- - 研发管理 - ITeye博客
Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布. 意思是我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”(这是我个人的称呼,在下边会用到,就是Jenkins的安装位置),进行编译、打包和发布到容器中.

T-Mobile 和 Jenkins 案例研究

- - DockOne.io
Jenkins 在 T-Mobile 节省数千小时和数百万美元. 大多数人都知道 T-Mobile 是无线服务提供商. 毕竟,我们拥有国际化的业务,并且是美国第三大移动运营商. 但是我们还是一家技术公司,提供的新产品包括 TVision 家庭电视服务,T-Mobile Money 个人银行产品以及 SyncUp Drive 车辆监控和路边辅助设备.

使用Jenkins持續集成與發佈Android應用程式

- Fstone - INET6
這是上週在Coscup 2011活動中演講的主題與投影片. Jenkins (http://jenkins-ci.org/) 是個廣為使用的持續集成(Continue Integration)框架,可以協助軟體工程師統合處理各種圍繞著「寫程式」之外的程式開發工作(如版本控制、環境設定、編譯、測試、發佈).