已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
持续集成模块设计分析报告 文件标识 SRT Continuous integration 当前版本 Beta1 0 作 者 张涛 文件状态 草稿 正式发布 正在修改 完成日期 2012 7 25 博雅 苹果事业部研发中心 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 2 of 16 版 本 历 史 版本 状态作者参与者起止日期备注 1 0张涛2012 7 20 2012 7 25持续集成 iTeach 新项目研 发准备 1 1张涛张巍2012 7 29 2012 7 30添加了内置插件的解释和配 置以及应用 注 正文部分 只有最后一次最后一次变更的内容会以橙色加粗橙色加粗显示 附录部分 只有最后一次最后一次变更的内容会以蓝色显示 文字较多橙色刺眼 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 3 of 16 目目目 录录录 0 文档介绍文档介绍 4 0 1 文档目的 4 0 2 文档范围 4 0 3 读者对象 4 0 4 参考文献 4 0 5 术语与缩写解释 4 1 软件集成软件集成 5 2 持续集成持续集成 5 2 1 持续集成定义及价值 5 2 2 持续集成要素及原则 6 3 初步服务器搭建配置初步服务器搭建配置 7 3 1 HUDSON 7 3 2 MAVEN 7 3 3 SONAR 8 3 4 SVN 9 3 5 工具集成应用 9 3 6 SONAR内置系统插件分析 CHECKSTYLE PMD FINDBUGS 14 附录 HUDSON SVN MAVEN SONAR流程简要分析 16 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 4 of 16 0 文档介绍文档介绍 0 1 文档目的文档目的 分析项目开发中关于软件集成的意义和持续集成带来的好处 并且对搭建配置持续集成 服务器初步工作进行一个总结与分享 0 2 文档范围文档范围 本文档适用于项目开发初期阶段制定规则和项目中项目优化 0 3 读者对象读者对象 本文档预期读者对象为本项目组的开发人员 也可用于日后维护人员查询 0 4 参考文献参考文献 Maven 实战 许晓彬 持续集成 百度文库 李巍 0 5 术语与缩写解释术语与缩写解释 缩写 术语缩写 术语解解 释释 Hudson集成服务器 负责管理调度 Maven包管理 部署组织工作 负责项目构建 Sonar项目分析服务器 复杂定制规则检验项目质量 SVN版本控制 源码服务器 CheckstyleSourceForge 下的一个项目 进行自动化代码规范检查 PMD通过静态分析获取代码错误 进行代码质量增强 FindBugs静态分析工具 用于检查软件缺陷和潜在性能问题 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 5 of 16 1 软件集成软件集成 软件集成就是用一种较好的方式 使多种软件的功能集成到一个软件里 或是把软 件的各部分组合在一起 在二期项目中 主要侧重于将完成某项工作的一组相关的应用程序组织起来在一个统一 的操作环境下以综合一致和整体连贯的形态来进行开发 测试 工作 2 持续集成持续集成 2 1 持续集成定义及价值持续集成定义及价值 持续集成是一种软件开发实践 即团队开发成员经常集成它们的工作 通常每个成员 每天至少集成一次 也就意味着每天可能会发生多次集成 每次集成通过自动化的构建 包 括编译 发布 自动化测试 来验证 从而尽快地发现集成错误并予以修改 得以让团队能够 更快的开发内聚的软件 持续集成价值 持续集成价值 1 减少风险减少风险 一天中进行多次的集成 并做了相应的测试 这样有利于检查缺陷 了解 软件的健康状况 减少假定 2 减少重复过程减少重复过程 通过自动化的持续集成可以将集成中重复的动作都变成自动化的 无需太 多人工干预 让人们的时间更多的投入到动脑筋的 更高价值的事情上 3 任何时间 任何地点生成可部署的软件任何时间 任何地点生成可部署的软件 持续集成开发可以在任何时间发布可以部署的软件 利用持续集成 可 以经常对源代码行一些小改动 并将这些改动和其他的代码进行集成 如 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 6 of 16 果出现问题 项目成员马上就会被通知到 问题会第一时间被修复 不采用 持续集成的情况下 这些问题有可能到交付前的集成测试的时候才发现 有 可能会导致延迟发布产品 而在急于修复这些缺陷的时候又有可能引入新的 缺陷 最终可能导致项目失败 4 增强项目的可见性增强项目的可见性 持续集成让我们能够注意到趋势并进行有效的决策 持续集成可以带来两点积极效果 1 有效决策 持续集成系统为项目构建状态和品质指标提供了及时的信 息 有些持续集成系统可以报告功能完成度和缺陷率 2 注意到趋势 由于经常集成 我们可以看到一些趋势 如构建成功或 失败 总体品质以及其它的项目信息 5 建立团队对开发产品的信心建立团队对开发产品的信心 持续集成可以建立开发团队对开发产品的信心 因为他们清楚的知道每一 次构建的结果 他们知道他们对软件的改动造成了哪些影响 结果怎么样 2 2 持续集成要素及原则持续集成要素及原则 持续集成的要素持续集成的要素 1 统一的代码库 2 自动构建 3 自动测试 4 每个人每天都要向代码库主干提交代码 5 每次代码递交后都会在持续集成服务器上触发一次构建 6 保证快速构建 7 模拟生产环境的自动测试 8 每个人都可以很容易的获取最新可执行的应用程序 9 每个人都清楚正在发生的状况 10 自动化的部署 持续集成的原则持续集成的原则 1 所有的开发人员需要在本地机器上做本地构建 然后再提交的版本控制库 中 从而确保他们的变更不会导致持续集成失败 2 开发人员每天至少向版本控制库中提交一次代码 3 开发人员每天至少需要从版本控制库中更新一次代码到本地机器 4 需要有专门的集成服务器来执行集成构建 每天要执行多次构建 5 每次构建都要 100 通过 6 每次构建都可以生成可发布的产品 7 修复失败的构建是优先级最高的事情 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 7 of 16 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 作为项目构建系统 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 8 of 16 下载地址 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 直 接编译我们的工程 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 9 of 16 sonar true jdbc mysql localhost 3306 sonar useUnicode true characterEncoding utf8 com mysql jdbc Driver sonar sonar http myserver 1234 3 4 SVN 由于项目的 SVN 服务器已经存在 所以关于 SVN 的相关分析附带一份参考资料 如 有需求可以在定稿中进行添加编写 3 5 工具集成应用工具集成应用 Hudson 的配置 通过浏览器 http localhost 8080 hudson 来打开 Hudson 的页面了 如下 如果你已经 build 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 10 of 16 过工程的会在这 里显示出来哪些成功了 哪些失败了 Hudson 的全局配置的全局配置 接下来要对 Hudson 进行全局设置了 点击左边列表菜单 Manage Hudson 然后点击 Configure System 可以对 hudson 进行系统配置 包括全局路径和变量设置等 系统消息 可以理解为登录系统后的欢迎词 你可以写点随意的东西 然后弄个 Logo 图 片什么的 它也支持 HTML 语言 可以把这个欢迎界面弄的相当漂亮 生成前等待时间 生成前等待时间 这个值是表示你可以让你的构建有等待时间 以防止在提交代码的过程中 去开始构建 这里是全局的变量 也可以在每个项目里面去设定 因为我使用 hudson 搭建 的项目有 SVN 的还有 VSS 的 这个等待时间的值肯定会不一样 如果你想在这里设置可 以查看右边的 帮助 启用安全 启用安全 这里是 hudson 权限的相应设置 选择该项后 如下图 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 11 of 16 这里可以保留默认设置 如果你想对每个用户进行相应的权限操作 选择 授权策略项下的 项目矩阵授权策略 这个选项就可以进行相应的设置了 如下图所示 全局属性 这块设置默认即可 Maven 的设置 的设置 就是取个名字 然后路径中指定 maven2 的解压路径 在这里设置时 去掉 自动安装 直接指定 MAVEN HOME 依个人设置 即可 JDK 设置 设置 与上类似 shell Ant CVS 邮箱通知等等 这些可以不用设定 Sonar 设置 设置 首先要配置 Sonar 的配置文件 修改需要使用的数据库类型和用户名 密码 默认都是 sonar 以及访问 Sonar 所需的链接地址 其次修改 Sonar 配置文件中的 JDK 路 径 指定为本机的 JDK 路径 最后进行 Sonar 的如下图的配置 以我的项目为例 不是都如 此图照搬配置 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 12 of 16 创建新的任务创建新的任务 鉴于此项的配置点过多 仅仅说明重要的配置项 在实际配置时如遇到问题 可以点击该配 置项后的 来查看帮助 点击左侧列表菜单的 新建任务 出现如下界面 填写任务名称然后选择 构建一个 maven2 3 项目 Advanced Project Options Quiet period 时间可以根据项目的需要来设定 这里的这个时间是说明从构建开始到项目真 正开始构建之间的时间差 比如 将此时间设为 300S 说明 TestJob 在要开始构建之前会 有 5 分钟的时间缓冲 这个是非常人性化的 因为如果有大量的代码需要提交 会需要很 长时间 如果没有等待时间的话很容易出现少代码的情况导致整个构建过程的失败 Use custom workspace 这个地方你可以将可以对外公布的东西放在一个特定的目录下 然 后把这里的值设成该目录 如 D hudson jobs TestJob builds 这样的话 这个目录下的东西 是就公共的了 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 13 of 16 Source Code Management 选择所使用配置管理工具 CVS SVN Repository URL 填入 SVN 代码版本库的 URL 地址 其他选项可以默认 Build Triggers 可以理解为你想以什么样的方式去触发你的构建 以其它构建成功后为基础 还是周期性的 构建 还是根据 poll SCM 变更触发 来触发构建 如需进行自动按照时间来构建 则选择 Build periodically 如 在 Schedule 中输入 0 12 20 注 Schedule 的配置规则是有 5 个空格隔开的字符组成 从左到右分别代表 分 时 天 月 年 代表所有 具体参考右面的蓝色小问号 0 12 20 表示在任何年任何月的任何天的 12 和 20 点的 0 分 进行构建 Build 和 Build Settings 不需要设置 Post build Actions 需要将安装的两个插件进行配置 一个是 Sonar 的插件 一个是部署 war 包到其他目录的插 件 其中的 Sonar 配置在总的 hudson 配置中配过就不用再行配置 而选中 Deploy war ear to a container 就会在每次打包结束后都会把所生成的 war 包从 hudson 的工作空间中拷贝进 所选择的容器中 如我的容器是 Tomcat 端口号是 8888 Tomcat 的用户名和密码都是 admin 如下图配置 至此 一个完整的集成了 Maven Hudson SVN Sonar 的环境就搭建成功了 如果所有的 配置步骤都没有出错的话 就可以通过项目后面的构建图标进行项目的构建了 具体的构建情况可以通过点击 命令行输出 来具体跟踪 苹果事业中心研发部 项目模块分析报告 作者 张涛Page 14 of 16 3 6 Sonar 内置系统插件分析 内置系统插件分析 checkstyle pmd findbugs 1 Sonar 插件安装插件安装 ex 为为 sonar 安装中文配置安装中文配置 1 访问 sonar 的插件库 然后下载中文包装的 jar http repository codehaus org org codehaus sonar plugins l10n sonar l10n zh plugin 1 0 sonar l10n zh plugin 1 0 jar 中文包装 2 然后将下载的 sonar l10n zh plugin 1 0 jar 文件放到 sonar 3 1 1 extensions plugins 路径下重启 sonar 服务 该插件就可以在 sonar 平台正常运行了 2 Checkstyle PMD Fin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床化学检验项目可行性研究报告
- 中药香囊生产线可行性研究报告
- 中成药CAPA管理系统可行性研究报告
- 工厂模板英语课件
- 药学职称考试备考药事管理与法规历年真题汇编及答案
- 机动车驾驶科目三通过超车让行标志注意事项模拟试题及答案
- 工厂封面制作课件
- 管理会计师职业资格考试成本管理高频考点模拟试题及答案
- 2026年C3C5车型驾驶证考试科目三道路驾驶技能模拟试卷及答案
- 建筑施工进度控制考点题库及答案
- 2026广东河源市龙川县恩波药械有限公司招聘8人考试备考试题及答案解析
- 2026年党支部书记党务工作培训练习题及答案
- 2026年中石化笔试题库(含答案)
- 高中美术必修《中国书法和中国画的密切关系》教学设计
- 2026秋沪科版(五四学制)八年级物理上册全册每课知识点清单
- 2026中银数字服务(南宁)有限公司招聘笔试模拟试题及答案详解
- RoHS 3.0 指令 2024-1020-EU 中文版(完整译文 + 新旧对比 + 2027 年实施时间表)
- 交管12123学法减分题库500题(含标准答案+解析2026全国)
- 高中入团积极分子考试题库
- 思想政治教育方法论考题
- 免疫规划知识普及课件
评论
0/150
提交评论