资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
苹果事业中心研发部,项目模块分析报告持续集成模块设计分析报告文件状态: 草稿 正式发布 正在修改文件标识:SRT-Continuous integration 当前版本:Beta1.0作 者:张涛完成日期:2012-7-25博雅-苹果事业部研发中心版 本 历 史版本/状态作者参与者起止日期备注1.0张涛2012-7-20-2012-7-25持续集成,iTeach新项目研发准备1.1张涛张巍2012-7-29-2012-7-30添加了内置插件的解释和配置以及应用注:正文部分,只有最后一次变更的内容会以橙色加粗显示。附录部分,只有最后一次变更的内容会以蓝色显示。(文字较多橙色刺眼) 目 录 0. 文档介绍40.1 文档目的40.2 文档范围40.3 读者对象40.4 参考文献40.5 术语与缩写解释41. 软件集成52. 持续集成52.1 持续集成定义及价值52.2 持续集成要素及原则63. 初步服务器搭建配置73.1 Hudson73.2 Maven73.3 Sonar83.4 SVN93.5工具集成应用93.6 Sonar内置系统插件分析(checkstyle,pmd,findbugs)14附录:Hudson+SVN+maven+sonar流程简要分析160. 文档介绍0.1 文档目的分析项目开发中关于软件集成的意义和持续集成带来的好处,并且对搭建配置持续集成服务器初步工作进行一个总结与分享。0.2 文档范围本文档适用于项目开发初期阶段制定规则和项目中项目优化。0.3 读者对象本文档预期读者对象为本项目组的开发人员,也可用于日后维护人员查询。0.4 参考文献Maven实战,许晓彬; 持续集成(百度文库),李巍;0.5 术语与缩写解释缩写、术语解 释Hudson集成服务器,负责管理调度Maven包管理、部署组织工作,负责项目构建Sonar项目分析服务器,复杂定制规则检验项目质量SVN版本控制,源码服务器CheckstyleSourceForge下的一个项目,进行自动化代码规范检查 PMD通过静态分析获取代码错误,进行代码质量增强FindBugs静态分析工具,用于检查软件缺陷和潜在性能问题1. 软件集成 软件集成就是用一种较好的方式,使多种软件的功能集成到一个软件里,或是把软 件的各部分组合在一起。 在二期项目中,主要侧重于将完成某项工作的一组相关的应用程序组织起来在一个统一的操作环境下以综合一致和整体连贯的形态来进行开发、测试、工作。2. 持续集成 2.1 持续集成定义及价值 持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误并予以修改,得以让团队能够更快的开发内聚的软件。 持续集成价值: 1. 减少风险 一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解 软件的健康状况,减少假定。 2. 减少重复过程 通过自动化的持续集成可以将集成中重复的动作都变成自动化的,无需太 多人工干预,让人们的时间更多的投入到动脑筋的、更高价值的事情上。 3. 任何时间、任何地点生成可部署的软件 持续集成开发可以在任何时间发布可以部署的软件。利用持续集成,可 以经常对源代码行一些小改动,并将这些改动和其他的代码进行集成。如 果出现问题,项目成员马上就会被通知到,问题会第一时间被修复。不采用 持续集成的情况下,这些问题有可能到交付前的集成测试的时候才发现,有 可能会导致延迟发布产品,而在急于修复这些缺陷的时候又有可能引入新的 缺陷,最终可能导致项目失败。 4. 增强项目的可见性 持续集成让我们能够注意到趋势并进行有效的决策。 持续集成可以带来两点积极效果: (1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信 息,有些持续集成系统可以报告功能完成度和缺陷率。 (2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或 失败、总体品质以及其它的项目信息。 5. 建立团队对开发产品的信心 持续集成可以建立开发团队对开发产品的信心,因为他们清楚的知道每一 次构建的结果,他们知道他们对软件的改动造成了哪些影响,结果怎么样。 2.2 持续集成要素及原则 持续集成的要素 1.统一的代码库 2.自动构建 3.自动测试 4.每个人每天都要向代码库主干提交代码 5.每次代码递交后都会在持续集成服务器上触发一次构建 6.保证快速构建 7.模拟生产环境的自动测试 8.每个人都可以很容易的获取最新可执行的应用程序 9.每个人都清楚正在发生的状况 10.自动化的部署 持续集成的原则 1. 所有的开发人员需要在本地机器上做本地构建,然后再提交的版本控制库 中,从而确保他们的变更不会导致持续集成失败。 2. 开发人员每天至少向版本控制库中提交一次代码。 3. 开发人员每天至少需要从版本控制库中更新一次代码到本地机器。 4. 需要有专门的集成服务器来执行集成构建,每天要执行多次构建。 5. 每次构建都要100%通过。 6. 每次构建都可以生成可发布的产品。 7. 修复失败的构建是优先级最高的事情。 3. 初步服务器搭建配置 初步搭建持续集成所需要的工具及作用: 工具 作用Hudson开源的集成管理工具,负责管理调度Maven包管理、部署组织工作,负责项目构建Sonar项目分析服务器,复杂定制规则检验项目质量SVN版本控制,源码服务器 流程图简要解析: 3.1 Hudson Hudson是一种革命性的开放源码 CI 服务器,它从以前的 CI 服务器吸取了许多经验 教训。 (1) Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI服务器,也很难找到开箱即用特性如此丰富的 CI 服务器。 (2) Hudson 容易使用的第二个原因是它具有强大的插件框架 ,所以很容易添 加特性,例如添加 tomcat 插件后,可以方将 build 好的 war 包方便的部 署到 Tomcat 里。 下载地址: http:/hudson-ci.org/ Hudson 插件 Hudson自动部署:http:/hudson-ci.org/downloads/plugins/deploy/ Sonar插件: http:/hudson-ci.org/downloads/plugins/sonar/ Hudson 的安装 可以将 Hudson 部署到 Tomcat 下面运行,将下载的 hudson.war 直接放到 Tomcat 的 webapp 下,使用命令 java -jar hudson.war启动 tomcat 就 ok 了3.2 Maven Maven 是一个顶级的 Apache Software Foundation 开源项目,创建它最初是为了管理 Jakarta Turbine 项目复杂的构建过程。从那以后,不论是开源开发项目还是私有开发项目都选择 Maven 作为项目构建系统。 下载地址: http:/maven.apache.org/download.html Maven的安装: 把压缩包解压到 D:maven (或者你自己想解压的位置) 下面就是配置环境变量了: MAVEN_HOME:D:maven-2.0.4 在 Path 中加入 %MAVEN_HOME%bin 测试是否安装成功,可以在命令行下输入 mvn -v ,出现如下界面, 3.3 Sonar Sonar 是一个开源的质量管理平台,专注于从项目到类方法的持续的分析和测量技术质量,它把代码质量相关软件集成到一起统一管理。 下载地址:http:/www.sonarsource.org/downloads/ sonar的安装 1.解压软件到/opt/sonar 2.安装mysql5.5 3.创建sonar数据库,脚本可以直接到 sonar/extras/database/mysql/create_database.sql 4.修改配置文件conf/sonar.properties,把以下内容的去掉。 sonar.jdbc.url: jdbc:mysql:/localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver sonar.jdbc.validationQuery: select 1 5.终端运行./sonar.sh console 6.访问http:/localhost:9000成功 7.配置maven安装目录conf/setting.xml的profiles属性,可以利用maven直 接编译我们的工
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号