您的位置:首页 > 编程语言

Jenkins系列1--初步了解

2016-02-22 15:08 274 查看
写在最前的总结:Jenkins其实就是一个工具,这个工具的作用就是调用各种其他的工具来达成你的目的。比如你要获取Subversion上最新的源代码,Jenkins会去调用SVNKIT(插件的核心Jar的名称)。然后你需要编译源代码(假设是用maven编译),Jenkins会去调用maven的插件。最后你可能需要发布程序到服务器上(假设是使用的Tomcat提供服务),你可以通过Tomcat自己的API发布程序(有个插件就是通过这个功能实现的发布),你也可以通过ssh通道自己写shell脚本去实现。总之,Jenkins就是一箱工具,在它能力范围内你想干什么都可以。 Q:Jenkins是什么?

A:百度一下你就知道!
Q:Jenkins有哪些版本?

A:这个版本太多了,具体去看官网吧!www.jenkins-ci.org
Q:应该选择哪个版本的Jenkins?

A:如果你是公司正式使用推荐长期支持版(LTS),原因:稳定。如果你是学习,随便哪个版本都可以。
Q:JDK应该安装哪个版本的?

A:推荐安装JDK7,原因:某些插件必须要求JDK7的支持。比如:Monitoring 插件
Q:Tomcat应该用哪个版本的?

A: Tomcat6或者7都可以。如果你要用Tomcat5.5的版本,我劝你趁早扔掉。不然一堆稀奇古怪的错误,看得你头晕。
Q: 可以直接用命令启动么?

A: 可以。命令:Java –jar jenkins.war –httpsPort=8443 –httpPort=-1 httpsPort是访问的端口,httpPort=-1代表关闭http访问方式启用https。

Q:Jenkins的帮助在哪儿?
A: 每个配置项后都有一个

帮助按钮,有疑问可以尝试自己解决。
Q:有哪些使用Jenkins的案例?
A: https://builds.apache.org/https://ci.jenkins-ci.org/
Q:使用Jenkins需要什么技能? A:推荐你学习这些:Windows的批处理、ant脚本、shell脚本、maven、版本控制软件相关知识。如果你会Java就更好了,因为Jenkins是用Java开发的。
Q:Jenkins的svn插件无法获取到最新的源代码?
A:请检查你的SVN服务器时间和Jenkins服务器时间是否同步。
Jenkins是什么?

说明:Jenkins折腾了好几个月了,打算写个系列记录下。有时间会尽量更新的。

第一章 Jenkins是什么?

Jenkins 是一个可扩展的持续集成引擎。主要用于:l 持续、自动地构建/测试软件项目。

l 监控一些定时执行的任务。

Jenkins拥有的特性包括:l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。

l 易于配置-所有配置都是通过其提供的web界面实现。

l 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。

l 生成JUnit/TestNG测试报告。

l 分布式构建支持Jenkins能够让多台计算机一起构建/测试。

l 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。

l 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

1 Jenkins的由来

目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战:l 软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。

l 构建可持续的自动化检查 :CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。

l 构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。

l 生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。

部署一个CI系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。下图概括了CI系统的基本结构:

该系统的各个组成部分是按如下顺序来发挥作用的:1. 开发者检入代码到源代码仓库。2. CI系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区。3. CI系统会在对应的工作区内执行构建过程。4. (配置如果存在)构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等等)给相关的当事人。5. (配置如果存在)如果构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,诸如一个文件服务器或者像Java.net、 SourceForge之类的网站。6. CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。Jenkins就是这么一个CI系统。之前叫做Hudson。以下是使用Jenkins的一些理由:l 是所有CI产品中在安装和配置上最简单的。

l 基于Web访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了AJAX的即时反馈。

l Jenkins是基于Java开发的(如果你是一个Java开发人员,这是非常有用的),但它不仅限于构建基于Java的软件。

l Jenkins拥有大量的插件。这些插件极大的扩展了Jenkins的功能;它们都是开源的,而且它们可以直接通过web界面来进行安装与管理。

1.1 Jenkins的目标

Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。特别是它具有以下优点:l Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。

l 支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个job。相当灵活。

l 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。

l 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。

转:http://www.cnblogs.com/zz0412/tag/jenkins
发现一些达人关于Jenkins的文章:Jenkins使用Subversion插件的一些注意事项:http://www.cnblogs.com/victorcai0922/archive/2012/11/26/2789326.htmlJenkins中关于一些插件的使用方法:http://www.cnblogs.com/victorcai0922/p/3318482.html

转:http://www.cnblogs.com/zz0412/p/jenkins00.html 点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 程序 源代码