持续集成工具Jenkins_尚硅谷视频学习笔记

本文详细介绍了如何利用 Jenkins 实现持续集成,从厨房装修的类比出发,阐述了持续部署、集成、交付的重要性和目标。通过 Jenkins+SVN 和 Jenkins+GitHub 的环境搭建,展示了自动化部署的过程,强调了 Jenkins 在减少风险、避免重复工作、增强项目可见性和团队信心等方面的价值。同时,讲解了 Jenkins 与 Hudson 的关系以及相关技术组合,为读者提供了一个全面的 Jenkins 持续集成实践指南。
摘要由CSDN通过智能技术生成

持续集成工具 Jenkins

1 从装修厨房看项目开发效率优化

1.1 持续部署

装修厨房

全部装好之后发现灯不亮, 电路有问题; 冷热水装反了, 管路有问题。 这些问题要解决就必须把地砖、 墙砖拆掉——一个环节有问题, 其他环节跟着返工。

那怎么做会好一些呢?

任何安装完成及时测试, 确保其可以正常工作。

项目开发

开发过程中进行单元测试能够通过, 但是部署到服务器上运行出现问题。

那怎么做会好一些呢?

仅仅单元测试还不够, 各个模块都必须能够在服务器上运行。

关注点

持续部署的关注点在于项目功能部署至服务器后可以运行, 为下一步测试环节或最终用户正式使用做好准备。

1.2 持续集成

装修厨房

装修厨房时我们需要铺地砖, 如果把所有地砖都切好再拿去铺就会发现: 每一块地砖单独看都是好的, 但是实际铺的时候, 把所有地砖整合起来, 发现和厨房地面总体尺寸不匹配, 边边角角的地砖需要重新切, 时间和物料成本陡然升高。

那怎么做会好一些呢?

切一块铺一块, 根据需要的尺寸来切, 尽早发现尺寸变化, 避免返工。

项目开发

各个小组分别负责各个具体模块开发, 本模块独立测试虽然能够通过, 但是上线前夕将所有模块整合到一起集成测试却发现很多问题, 想要解决就需要把很多代码返工重写而且仍然有可能有问题, 但现在时间很可能不够了。

那怎么做会好一些呢?

经常性、 频繁的把所有模块集成在一起进行测试, 有问题尽早发现, 这就是持续集成。

关注点

持续集成的关注点在于尽早发现项目整体运行问题, 尽早解决。

1.3 持续交付

装修厨房

全部装修好之后房屋主人来验收, 各项功能都正常, 但是水龙头的样式主人不喜欢, 灶台的位置主人不满意, 要求返工。

那怎么做会好一些呢?

房屋主人随时查看装修进度, 施工团队及时调整。

项目开发

项目的各个升级版本之间间隔时间太长, 对用户反馈感知迟钝, 无法精确改善用户体验, 用户流失严重。

那怎么做会好一些呢?

小版本不断进行快速迭代, 不断收集用户反馈信息, 用最快的速度改进优化。

关注点

持续交付的关注点在于研发团队的最新代码能够尽快让最终用户体验到。

1.4 总体目标

好处 1: 降低风险

一天中进行多次的集成, 并做了相应的测试, 这样有利于检查缺陷, 了解软件的健康状况, 减少假定。

好处 2: 减少重复过程

产生重复过程有两个方面的原因, 一个是编译、 测试、 打包、 部署等等固定操作都必须要做, 无法省略任何一个环节; 另一个是一个缺陷如果没有及时发现, 有可能导致后续代码的开发方向是错误的, 要修复问题需要重新编写受影响的所有代码。

而使用 Jenkins 等持续集成工具既可以把构建环节从手动完成转换为自动化完成, 又可以通过增加集成频次尽早发现缺陷避免方向性错误。

好处 3: 任何时间、 任何地点生成可部署的软件

持续集成可以让您在任何时间发布可以部署的软件。 从外界来看, 这是持续集成最明显的好处, 我们可以对改进软件品质和减少风险说起来滔滔不绝, 但对于客户来说, 可以部署的软件产品是最实际的资产。 利用持续集成, 您可以经常对源代码进行一些小改动, 并将这些改动和其他的代码进行集成。 如果出现问题, 项目成员马上就会被通知到, 问题会第一时间被修复。 不采用持续集成的情况下, 这些问题有可能到交付前的集成测试的时候才发现, 有可能会导致延迟发布产品, 而在急于修复这些缺陷的时候又有可能引入新的缺陷, 最终可能导致项目失败。

好处 4: 增强项目的可见性

持续集成让我们能够注意到趋势并进行有效的决策。 如果没有真实或最新的数据提供支持, 项目就会遇到麻烦, 每个人都会提出他最好的猜测。 通常, 项目成员通过手工收集这些信息, 增加了负担, 也很耗时。 持续集成可以带来两点积极效果:

  1. 有效决策: 持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。
  2. 注意到趋势: 由于经常集成, 我们可以看到一些趋势, 如构建成功或失败、总体品质以及其它的项目信息。

好处 5: 建立团队对开发产品的信心

持续集成可以建立开发团队对开发产品的信心, 因为他们清楚的知道每一次构建的结果, 他们知道他们对软件的改动造成了哪些影响, 结果怎么样。

2 持续集成工具

2.1 Jenkins 和 Hudson

目前最流行的一款持续集成及自动化部署工具。

Jenkins 和 Hundson 之间的关系: 2009 年, 甲骨文收购了 Sun 并继承了 Hudson 代码库。 在 2011 年年初, 甲骨文和开源社区之间的关系破裂, 该项目被分成两个独立的项目:

  • Jenkins: 由大部分原始开发人员组成
  • Hudson: 由甲骨文公司继续管理

所以 Jenkins 和 Hudson 是两款非常相似的产品。

2.2 技术组合

Jenkins 可以整合 GitHub 或 Subversion

Husband 也可以整合 GitHub 或 Subversion

二者既然是同源的工具软件, 操作和指导思想就是接近的, 所以本教程通过 Jenkins为大家呈现。

3 JavaEE 项目部署方式对比

3.1 手动部署

在这里插入图片描述

3.2 自动化部署

“自动化” 的具体体现: 向版本库提交新的代码后, 应用服务器上自动部署, 用户或测试人员使用的马上就是最新的应用程序。

在这里插入图片描述

搭建上述持续集成环境可以把整个构建、 部署过程自动化, 很大程度上减轻工作量。对于程序员的日常开发来说不会造成任何额外负担——自己把代码提交上去之后, 服务器上运行的马上就是最新版本——一切都发生在无形中。

下面我们讲带领大家一步一步搭建整套持续集成环境, 这个操作过程只需要细心认真即可, 没有任何难度。 但是需要优秀的你具备以下前置知识:

  • Linux 基本操作命令和 VIM 编辑器使用
  • Maven 的项目构建管理
  • GitHub 或 SVN 使用

4 Jenkins+SVN 持续集成环境搭建

4.1 系统结构总述

创建虚拟机安装 Linux 系统

  • 安装版本控制工具的虚拟机
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值