手把手配置sonar、jenkins进行持续审查
2018-02-22 18:46
609 查看
一、安装配置sonar
1、Sonar介绍
Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。2、配置数据库Apache Derby 是Sonar自带并且默认安装使用的数据库,此外Sonar对如下数据库提供支持:MySQL 5.x, Oracle 10g XE, Postgresql, MS SqlServer等,本文以mysql为例介绍如何配置数据库:1)创建数据库在mysql中执行如下脚本创建数据库及mysql用户Sonar默认的端口是”9000”、默认的上下文路径是”/”、默认的网络接口是”0.0.0.0”,默认的管理员帐号和密码为:admin/admin,这些参数都可以在配置文件中修改:
2)作为Web项目,部署到Tomcat等应用服务器中a. 确保conf/sonar.properties、conf/wrapper.conf未被修改使用过b. 执行如下命令生成war包,将生成的sonar.war部署到应用服务器中
Squid [sonar-squid-java-plugin]:检查违反Sonar定义规则的代码
Checkstyle [sonar-checkstyle-plugin]:使用CheckStyle检查违反统一代码编写风格的代码
FindBugs [sonar-findbugs-plugin]:使用FindBugs检查违反规则的缺陷代码
PMD [sonar-pmd-plugin]:使用pmd检查违反规则的代码
Surefire [sonar-surefire-plugin]:使用Surefire执行单元测试
Cobertura [sonar-cobertura-plugin]:使用Cobertura获取代码覆盖率
JaCoCo [sonar-jacoco-plugin]:使用JaCOCO获取代码覆盖率
下面列出了一些常用的插件:JavaScript代码检查:http://docs.codehaus.org/display/SONAR/JavaScript+Plugin
python代码检查:http://docs.codehaus.org/display/SONAR/Python+Plugin
Web页面检查(HTML、JSP、JSF、Ruby、PHP等):http://docs.codehaus.org/display/SONAR/Web+Plugin
xml文件检查:http://docs.codehaus.org/display/SONAR/XML+Plugin
scm源码库统计分析:http://docs.codehaus.org/display/SONAR/SCM+Stats+Plugin
文件度量:http://docs.codehaus.org/display/SONAR/Tab+Metrics+Plugin
中文语言包:http://docs.codehaus.org/display/SONAR/Chinese+Pack
时间表显示度量结果:http://docs.codehaus.org/display/SONAR/Timeline+Plugin
度量结果演进图:http://docs.codehaus.org/display/SONAR/Motion+Chart+Plugin
b)插件配置示例(本段内容来自http://www.ibm.com/developerworks/cn/java/j-lo-sonar/)Sonar 的主要特色是对不同工具产生的检查结果进行再加工处理,Sonar 还向用户提供了对数据进行个性化处理的方法。本节以 Technical Debt 插件为例说明如何通过设置参数影响最后的报告结果。首先了解一下这个插件中的“技术债务”的概念,这个概念最早是在 1992 年由 Ward Cunningham 在他的论文“The WyCash Portfolio Management System”中提出的,之后被软件工程界接受并推广,《重构》的作者 Martin Fowler 也在其 网站上对技术债务有所介绍。其实原理可以理解为“出来混早晚要还的”,当前不规范的代码,会对以后产品修改的成本造成影响。Soanr 的 Technical Debt 插件提供了默认的计算公式,通过对其中的权重参数进行配置,可以适应不同公司和项目对技术债务的计算。
以上的各项数据指标,可以根据自己公司和项目的不同情况进行设置,如图所示:
例如默认参数下同一个项目的技术债务指标如下:
修改了参数后的结果为:
可见将 Average time to cover complexity of one (in hours) 从 0.2 修改为 0.01 后,Coverage 的权重变小了,从而达到忽略单元测试覆盖率的作用。不同的公司和项目可以根据需要调整各自的参数,参数的调优和策略不在本文的讨论范围之内。通过以上的示例可以看出,Sonar 使用不同类型的图表显示给用户代码质量的结果,并且这些图表不是简单地对单元测试覆盖率或者静态检测工具的结果进行显示,而是根据软件工程理论进行了二次加工后的结果,更加科学和直观。c)更新中心以管理员用户登录Sonar,进入配置->系统,选择更新中心,如图:
其中Available Plugins选项卡提供了可以选择安装的插件,System Updates可以在线更新Sonar。下载插件需要注意其中有些插件是需要购买才能使用的,其License类型为Commercial。
二、与jenkins集成
1、通过Maven进行集成
修改maven的主配置文件(${MAVEN_HOME}/conf/settings.xml文件或者 ~/.m2/settings.xml文件),在其中增加访问Sonar数据库及Sonar服务地址,添加如下配置:配置构建项目,增加Post Build Action:
应用程序构建时就会自动触发Sonar对代码的检查 http://www.importnew.com/23849.html
相关文章推荐
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonarqube_jenkins进行持续JAVA代码自动构建审查
- [转]配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- [转]配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar、jenkins进行持续审查
- 配置sonar和jenkins进行代码审查
- 配置sonar和jenkins进行代码审查