zoukankan      html  css  js  c++  java
  • 简单介绍Jenkins&持续集成

    1.定义

    持续集成(Continuous integration),简称CI。

    随着软件项目复杂度的增加,就会对集成和确保软件组件能够在一起工作提出了更多的要求-要早集成、常集成。

    CI不是一项软件开发实践,而是多项软件开发实践的集合。

    2.持续继承与敏捷编程

    在敏捷领域中,测试驱动TDD和持续集成CI被称为敏捷编程XP的两大基石,于是乎,很多人的概念里就是持续集成是为了实现敏捷编程的。

    这是一个错误的认识。实际上,早于敏捷编程概念的提出,持续集成作为一个best practice就已经被很多公司采用了,只不过作为一个概念,

    则是由Martin大叔为了推进敏捷所倡导并由此风靡起来。持续集成本身只是一种practice,并不被什么开发模型所限制,在任何一种开发模型中都可以采用,也可以运行得非常理想。

    3.为什么要做持续集成

    易于定位错误。也就是当你的持续集成失败了,说明你新加的代码或者修改的代码引起了错误。

    及早在项目里取得系统级的成果。因为代码已经被集成起来了,所以即使整个系统还不是那么可用,但至少你和你的团队都已经可以看到它已经在那了。

    改善对进度的控制。这点非常明显,每天都可以看到哪些功能可以使用,哪些功能还没有实现。。

    改善客户关系。理由同上。

    更加充分地测试系统中的各个单元。这也是我们常讲的Daily Build与Smoke Test相结合带来的绝大好处。

    能在更短的时间里建造整个系统。

    有助于项目的开发数据的收集。比如说,项目代码量的变化,经常出错的Tests,经常出错的source code等。

    与其它工具结合的持续代码质量改进。如与CheckStyle,FindBugs等等的结合。

    与测试工具或者框架结合的持续测试。如与xUnit,SilkTest, LoadRunner等等的结合。

    便于Code Review。在每个build里,我们都可以知道与前一个build之间有什么改动,然后针对这些改动,我们就可以实施Code Review了。

    便于开发流程的管理。要把一个开发的build提交给测试组作测试,测完满意了,再提交到发布组去发布。

    4.持续集成的架构图

    5.Jenkins

    Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
    1、持续的软件版本发布/测试项目。
    2、监控外部调用执行的工作。
     
    6.Jenkins安装

    前置条件:
    jdk         注意需要Java 5以及以上的版本
    tomcat
    Maven
    配置环境变量,修改端口等。
    Jenkins安装:
    下载war
    部署到tomcat中
    启动tomcat
    访问:http://192.168.18.63:8080/jenkins,按步骤填写完成部署。

    6.使用
    1. 项目名称
    2. 自定义工作目录
    3. 配置svn地址,用户名,密码
    4. Build periodically 0 1 * * *
    5. Poll SCM */5 * * * *
    6. Invoke top-level Maven targets mvn package
    7. Execute shell
    8. 构建后操作:FindBugs,Junit Test,Email等

    自动部署执行的shell脚本:

    1. BUILD_ID=dontkillme 防止job完成后tomcat启动终端,原因未知。
    2. sh /opt/tomcat/bin/shutdown.sh
    3. sleep 5
    4. rm -rf /opt/tomcat/webapps/cmcciw /opt/tomcat/webapps/cmcciw.war
    5. cp target/cmcciw.war /opt/tomcat/webapps/
    6. sleep 10
    7. sh /opt/tomcat/bin/startup.sh
     
  • 相关阅读:
    Spring 原生SQL查询
    Spring 使用注解查询 JPQL 按对象查询
    JAVA 判断输入流是否为空
    Spring-AOP教程
    错误笔记5, Spring datatable Error creating bean with name 'userController'
    Spring 分页查询
    前端传数据到servlet数据乱码
    sql 分页查询
    移动APP性能测试
    【8】接口、多态
  • 原文地址:https://www.cnblogs.com/e206842/p/5589250.html
Copyright © 2011-2022 走看看