jenkins入门手册


Jenkins 入门手册 By zjl Jenkins 入门手册 2013-08-08 Jenkins 入门手册 By zjl 写在前面的话 网络上很多大神的博客有关于 Jenkins 的文章,有点蛋疼的是。大神们往往写的很简单,像 我这种小白级人物看着像天书。我现在写下的都是我在使用 jenkins 时的一些经验。原本打 算直接在网页上写的,但是网页写着不是很方便。word 写好了,那就顺便发布一个 pdf 版 本的吧。如果文章中有错误,我会在 http://www.cnblogs.com/zz0412/p/jenkins02.html 更正。 非常欢迎大家一起交流。 QQ 群:172758282 邮箱:492738140@qq.com zjl 写于 2013-09-04 Jenkins 入门手册 By zjl 目 录 第一章 JENKINS 是什么? .......................................................................................................... 1 1 JENKINS 的由来 ........................................................................................................................ 1 1.1 JENKINS 的目标 ..................................................................................................................... 2 第二章 JENKINS 安装与配置 ...................................................................................................... 3 2 JENKINS 安装 ............................................................................................................................ 3 3 JENKINS 配置 ............................................................................................................................ 4 3.1 系统管理 ............................................................................................................................... 4 3.1.1 提示信息 ......................................................................................................................... 4 3.1.2 系统设置 ......................................................................................................................... 5 3.1.3 Configure Global Security(安全设置) ............................................................................. 7 3.1.4 管理用户设置 ................................................................................................................. 8 3.1.5 管理插件设置 ................................................................................................................. 9 3.2 项目构建设置 ....................................................................................................................... 9 3.2.1 构建自由风格的 Job ...................................................................................................... 9 3.2.2 构建 Maven 风格的 Job ............................................................................................... 12 3.2.3 邮件通知设置 ............................................................................................................... 15 3.2.4 War 文件部署设置 ........................................................................................................ 15 3.3 监控 ..................................................................................................................................... 17 4 JENKINS 插件 .......................................................................................................................... 19 4.1 JENKINS 插件安装 ............................................................................................................... 19 4.2 JENKINS 插件安装示例 ....................................................................................................... 21 Jenkins 入门手册 By zjl 第 1 页 第一章 Jenkins 是什么? Jenkins 是一个可扩展的持续集成引擎。 主要用于:  持续、自动地构建/测试软件项目。  监控一些定时执行的任务。 Jenkins 拥有的特性包括:  易于安装-只要把 jenkins.war 部署到 servlet 容器,不需要数据库支持。  易于配置-所有配置都是通过其提供的 web 界面实现。  集成 RSS/E-mail 通过 RSS 发布构建结果或当构建完成时通过 e-mail 通知。  生成 JUnit/TestNG 测试报告。  分布式构建支持 Jenkins 能够让多台计算机一起构建/测试。  文件识别:Jenkins 能够跟踪哪次构建生成哪些 jar,哪次构建使用哪个版本的 jar 等。  插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。 1 Jenkins 的由来 目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保 证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您 的开发团队应对如下挑战:  软件构建自动化 :配置完成后,CI 系统会依照预先制定的时间表,或 者针对某一特定事件,对目标软件进行构建。  构建可持续的自动化检查 :CI 系统能持续地获取新增或修改后签入的 源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的 代码时,CI 系统会不断确认这些新代码是否破坏了原有软件的成功构 建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费 的时间和精力(说直接一点也是钱啊,呵呵)。  构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定 的一套测试规则,完成后触发通知(Email,RSS 等等)给相关的当事人。  生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的 周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构 件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户 使用。 部署一个 CI 系统需要的最低要求是,一个可获取的源代码的仓库,一个包 含构建脚本的项目。 下图概括了 CI 系统的基本结构: Jenkins 入门手册 By zjl 第 2 页 图1 CI 系统的基本结构 该系统的各个组成部分是按如下顺序来发挥作用的: 1. 开发者检入代码到源代码仓库。 2. CI 系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时, 它将把源代码仓库的源码存放到对应的工作区。 3. CI 系统会在对应的工作区内执行构建过程。 4. (配置如果存在)构建完成后,CI 系统会在一个新的构件中执行定义的一套测试。 完成后触发通知(Email,RSS 等等)给相关的当事人。 5. (配置如果存在)如果构建成功,这个构件会被打包并转移到一个部署目标(如应用 服务器)或存储为软件仓库中的一个新版本。软件仓库可以是 CI 系统的一部分,也 可以是一个外部的仓库,诸如一个文件服务器或者像 Java.net、 SourceForge 之类的 网站。 6. CI 系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些 构建好的构件。 Jenkins 就是这么一个 CI 系统。之前叫做 Hudson。 以下是使用 Jenkins 的一些理由:  是所有 CI 产品中在安装和配置上最简单的。  基于 Web 访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了 AJAX 的即时反馈。  Jenkins 是基于 Java 开发的(如果你是一个 Java 开发人员,这是非常有用的),但 它不仅限于构建基于 Java 的软件。  Jenkins 拥有大量的插件。这些插件极大的扩展了 Jenkins 的功能;它们都是开源 的,而且它们可以直接通过 web 界面来进行安装与管理。 1.1 Jenkins 的目标 Jenkins 的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相 Jenkins 入门手册 By zjl 第 3 页 关人员省时省力提高开发效率。 CI 系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时, 它将运行构建的任务委托给构建过程本身。如果构建失败了,那么 CI 系统将通知相关人员, 然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。 特别是它具有以下优点:  Jenkins 一切配置都可以在 web 界面上完成。有些配置如 MAVEN_HOME 和 Email,只需要 配置一次,所有的项目就都能用。当然也可以通过修改 XML 进行配置。  支持 Maven 的模块(Module),Jenkins 对 Maven 做了优化,因此它能自动识别 Module, 每个 Module 可以配置成一个 job。相当灵活。  测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他 CI, 这几乎是件不可能完成的任务。  构件指纹(artifact fingerprint),每次 build 的结果构件都被很好的自动管理,无需 任何配置就可以方便的浏览下载。 第二章 Jenkins 安装与配置 2 Jenkins 安装 在最简单的情况下,Jenkins 只需要两个步骤: 1.下载最新的版本(一个 WAR 文件)。Jenkins 官方网址: http://Jenkins-ci.org/ 2.运行 java -jar jenkins.war 注意:Jenkins 需要运行 Java 5 以及以上的版本。 还有一种安装方式就是将下载的 war 包文件部署到 servlet 容器,然后启动容器,在浏 览器的 URL 地址栏中输入类似 http://localhost:8080/jenkins/这样的地址即可。下图是安装成 功后的界面(使用的是 Linux+Tomcat6+Java6 环境): 图2 Jenkins 主界面 Jenkins 入门手册 By zjl 第 4 页 3 Jenkins 配置 写在配置前的一些话:Jenkins 的配置不可能全部都说到的,大部分配置是有英文说明的, 点击输入框后面的问号就可以看见了。英文不会用翻译工具,连蒙带猜的,多测试几次,你 就懂了。 3.1 系统管理 在已运行的 Jenkins 主页中,点击左侧的系统管理进入如下界面: 图3 Jenkins 系统管理 3.1.1 提示信息 Ps:版本不同提示的消息有可能不同 3.1.1.1 Utf-8 编码 Your container doesn't use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, this will cause problems. See Containers and Tomcat i18n for more details. Jenkins 建议在 tomcat 中使用 utf-8 编码,配置 tomcat 下 conf 目录的 server.xml 文件 Jenkins 入门手册 By zjl 第 5 页 图4 URIEncoding 编码设置 Ps:如果 Job 的控制台中文输出乱码,请将 URIEncoding=”utf-8”更改为 useBodyEncodingForURI="true" 3.1.1.2 新的版本 New version of Jenkins (1.518.JENKINS-14362-jzlib) is available for download (changelog). 提示有新的版本可以下载了,喜欢更新的点击 download 去下载吧! 3.1.1.3 安全设置 图5 安全提示消息 詹金斯允许网络上的任何人代表您启动进程。考虑至少启用身份验证来阻止滥用。点击 Dismiss 忽略该消息,点击 Setup Security 进入设置界面.详细设置请参考 Configure Global Security(安全设置) 章节 3.1.2 系统设置 在已运行的 Jenkins 主页中,点击左侧的系统管理—>系统设置进入如下界面: 图6 系统设置界面 Jenkins 入门手册 By zjl 第 6 页 3.1.2.1 JDK、Maven、Ant 配置 配置一个 JDK、Ant、Maven 实例,请在每一节下面单击 Add(新增) 按钮,这里将添加实例 的名称和绝对地址。下图描述了这两个部分。 图7 JDK 配置界面 JDK 别名:给你看的,随便你自己,叫阿猫阿狗都可以 JAVA_HOME:这个是本机 JDK 的安装路径(错误的路径会有红字提示你的) 自动安装:不推荐这个选项 后面 Ant 与 Maven 的配置是一样的,JDK 去 oracle 官网下载,Ant 与 Maven 去 apache 官网下载 Ps:每个文本框后面都有个问号,点击问号就会出现帮助信息 3.1.2.2 邮件通知配置 3.1.2.2.1 配置发件人地址 图8 发件人地址配置界面 System Admin e-mail address:Jenkins 邮件发送地址,如果你这个没有配置,等着发邮件的时候报 错吧,当时我也是这儿没有配置,郁闷了我一周的时间。⊙﹏⊙b 汗 Jenkins 入门手册 By zjl 第 7 页 3.1.2.2.2 配置邮件通知 图9 邮件通知 这个就非常的简单了,根据的的邮箱提供者的参数配置就行了。 Ps:小技巧:用户默认邮件后缀配置了后,以后你填写邮件地址只需要@之前的就行了 3.1.2.3 Subversion 配置 图10 Subversion 配置 Subversion Workspace Version:Subversion 的版本号,选择你对应的版本号就行了 3.1.3 Configure Global Security(安全设置) 在已运行的 Jenkins 主页中,点击左侧的系统管理—>Configure Global Security 进入如 下界面: Jenkins 入门手册 By zjl 第 8 页 图11 安全设置界面 设置如上图,保存后系统管理中就出现管理用户的选项。页面右上角也会出现登录/注册的 选项。 3.1.4 管理用户设置 在右上角点击注册 图12 注册用户界面 点击 sign up 按钮,提示你现在已经登录.返回首页. 登录后和匿名账号看到的首页有几点不同,如下图红框所示: Jenkins 入门手册 By zjl 第 9 页 图13 用户登录界面 3.1.5 管理插件设置 建议先阅读 Jenkins 插件章节,在回来安装如下所示的插件。这个插件将生成的构件(war 或者 ear)部署到主流的服务器上。 插件名称:Deploy Plugin 插件介绍:This plugin takes a war/ear file and deploys that to a running remote application server at the end of a build 3.2 项目构建设置 3.2.1 构建自由风格的 Job 3.2.1.1 新建自由风格构建任务 在已运行的 Jenkins 主页中,点击左侧的新建 Job 进入如下界面: 图14 新建 Job 界面 这时,需要为新的构建任务指定一个名称。(这里输入的任务名称为:Ant_test)这里有几种 Jenkins 入门手册 By zjl 第 10 页 的任务类型可供选择,鉴于初步介绍,先选择构建一个自由风格的软件项目。对于其他的类型, 经常使用的是拷贝已存在任务;这主要为了能在现有的任务基础上新建任务。点击 OK 按钮, 3.2.1.2 构建任务配置 3.2.1.2.1 源码管理配置 演示是使用 Subversion 的链接,在 Repository URL 中输入你的项目链接,如果没有权限则会提示 如下图: 图15 Subversion 配置界面 点击 enter credential 输入用户名和密码(我猜大家一般都是使用的用户名和密码登陆的) 图16 Subversion 权限认证界面 Ps:svn 的用户名和密码设置了是没有办法在 web 界面修改的。如果要修改则先去 Jenkins 目录删除 hudson.scm.SubversionSCM.xml 文件(点到为止,毕竟这只是入门教程) 3.2.1.2.2 构建触发器 在其他项目构建完成后才执行构建:指定的项目完成构建后,触发此项目的构建。 Poll SCM :这是 CI 系统中常见的选项。当您选择此选项,您可以指定一个定时作业 Jenkins 入门手册 By zjl 第 11 页 表达式来定义 Jenkins 每隔多久检查一下您源代码仓库的变化。如果发现变化,就执行一次 构建。例如,表达式中填写 0,15,30,45 * * * *将使 Jenkins 每隔 15 分钟就检查一次您源码仓 库的变化。 Build periodically :此选项仅仅通知 Jenkins 按指定的频率对项目进行构建,而不 管 SCM 是否有变化。如果想在这个 Job 中运行一些测试用例的话,它就很有帮助。 3.2.1.2.3 Ant 构建配置 因为我的项目是用 ant 脚本实现的编译和打包,所以我选择的是 Invoke Ant,Ant Version 选 择你 Ant 配置的那个名字,注意不要选择 default 喔,那个选择了没有用。 图17 Ant 构建配置界面 如果你的构建脚本 build.xml 不在 workspace 根目录、或者说你的构建脚本不叫 build.xml。那么需要 在高级里设置 Build File 选项的路径,指明你的脚本。注意:是相对路径 部署请参考:war 文件部署章节 Jenkins 入门手册 By zjl 第 12 页 3.2.2 构建 Maven 风格的 Job 3.2.2.1 新建 Maven 构建任务 图18 新建 Job 界面 这时,需要为新的构建任务指定一个名称。(这里输入的任务名称为:maven_test)这里有 几种的任务类型可供选择,鉴于初步介绍,先选择构建一个 maven2/3 项目。对于其他的类 型,经常使用的是拷贝已存在任务;这主要为了能在现有的任务基础上新建任务。点击 OK 按钮, 3.2.2.2 构建任务配置 Jenkins 入门手册 By zjl 第 13 页 图19 构建任务配置界面 3.2.2.2.1 源码管理配置 演示是使用 Subversion 的链接,在 Repository URL 中输入你的项目链接,如果没有权限则会提示 如下图: 图20 Subversion 配置界面 点击 enter credential 输入用户名和密码(我猜大家一般都是使用的用户名和密码登陆的) 图21 Subversion 权限认证界面 Ps:svn 的用户名和密码设置了是没有办法在 web 界面修改的。如果要修改则先去 Jenkins 目录删除 hudson.scm.SubversionSCM.xml 文件(点到为止,毕竟这只是入门教程) 3.2.2.2.2 构建触发器 在其他项目构建完成后才执行构建:指定的项目完成构建后,触发此项目的构建。 Poll SCM :这是 CI 系统中常见的选项。当您选择此选项,您可以指定一个定时作业 表达式来定义 Jenkins 每隔多久检查一下您源代码仓库的变化。如果发现变化,就执行一次 构建。例如,表达式中填写 0,15,30,45 * * * *将使 Jenkins 每隔 15 分钟就检查一次您源码仓 库的变化。 Jenkins 入门手册 By zjl 第 14 页 Build periodically :此选项仅仅通知 Jenkins 按指定的频率对项目进行构建,而不 管 SCM 是否有变化。如果想在这个 Job 中运行一些测试用例的话,它就很有帮助。 3.2.2.2.3 Maven 构建设置 图22 Maven 构建配置界面 2013-08-22 补充 Goals and options :clean install -Dmaven.test.skip=true #加入了跳过测 试的代码 Root POM:填写你项目的 pom.xml 文件的位置,注意:是相对位置,如果该文件不存在,会有红色字提 示。 部署请参考:war 文件部署章节 3.2.2.2.4 构建 maven 项目的心得 使用 Jenkins 构建 maven 项目的一点小心得: maven 项目的构建是比较麻烦的,如果你的项目是下图这种结构。那么恭喜你!你新建一个 job 就可以 了,因为只有一个根。如果你的 svn 地址是:https://192.xxx/Pe_Project/root-pom,那么 Root POM 只需要保持默认就行了,因为 Jenkins 可以再 workspace 目录下面找到 pom.xml 文件 如果你的 svn 地址是:https://192.xxx/Pe_Project,那么 Root POM 需要指定为 root-pom/pom.xml,因为 Jenkins 可以再 workspace/root-pom 目录下面找到 pom.xml 文件 图23 Maven 项目结构界面 1 上面这种方法打包的时候非常简单,但是用 eclipse 开发的时候你就不右键 run as —>tomca 启动了,如果你想使用这种方式,将 tomcat 换成 jetty 即可。 如果你的项目是下图这种结构,那么非常悲剧的告诉你,你要建立好几个 job 来构建这一个 Jenkins 入门手册 By zjl 第 15 页 项目,因为这个项目有 4 个根。 图24 Maven 项目结构界面 2 上面这种方法打包的时候比较麻烦,但是用 eclipse 开发的时候你就可以使用右键 run as —>tomca 启动了 3.2.3 邮件通知设置 图25 构建后操作界面 选择 Add post-build action,然后选择 E-mail Notification,如下图: 图26 收件人列表界面 在 Recipients 中输入收件人邮件地址,如果用多个收件人用“,”英文逗号隔开 3.2.4 War 文件部署设置 首先你必须安装好 Deploy Plugin 插件,然后在 tomcat 的 conf 目录配置 tomcat-users.xml 文件,在节点里添加如下内容: Jenkins 入门手册 By zjl 第 16 页 引号里的 username 和 password 可以随便替换,待会要用的。 好了,回到 Jenkins 项目配置页面: 图27 构建后操作界面 选择 Add post-build action,然后选择 Deploy war/ear to a container,如下图: 图28 远程部署配置界面 WAR/EAR files:war 文件的存放位置,如:target/test.war 注意:相对路径,target 前是没有/的。 Context path:访问时需要输入的内容,如 ofCard 访问时如下:http://192.168.x.x:8080/ofCard/ 如果为空,默认是 war 包的名字。 Container:选择你的 web 容器,如 tomca 6.x Manager user name:填入 tomcat-users.xml 配置的 username 内容 Manager password:填入 tomcat-users.xml 配置的 password 内容 Tomcat URL:填入 http://192.168.x.x:8080/ Deploy on failure:构建失败依然部署,一般不选择 注意:虽然这种部署方法可能会导致 tomcat 加载时出现卡死的现象。但是也是最简单的部署方式。如果 卡死了重启下就好了,将 tomcat 的 java 内存参数调高可以解决这个问题。 最后不要忘记点击保存喔。 好了!到此一个项目的获取源码,打包,远程部署,邮件通知就完成了。 Jenkins 入门手册 By zjl 第 17 页 3.3 监控 当任务一旦运行,您将会看到这个任务正在队列中的仪表板和当前工作主页上运行。这 两种显示如下。 图29 主页监控(左),项目监控(右) 一旦构建完成后,完成后的任务将会有三个地方进行显示。 你可以在 Jenkins 的控制面板上看到它,如下图。 图30 主页项目界面 在上面展示的截图中,您将注意到有两个图标描述当前作业的状态。S 栏目代表着“最新构 建状态”,W 栏目代表着“构建稳定性”。Jenkins 使用这两个概念来介绍一个作业的总体状 况: 构建状态:下图中分级符号概述了一个 Job 新近一次构建会产生的四种可能的状态: Successful:完成构建,且被认为是稳定的。 Unstable:完成构建,但被认为不稳定。 Failed:构建失败。 Disabled:构建已禁用。 图31 构建状态界面 构建稳定性: 当一个 Job 中构建已完成并生成了一个未发布的目标构件,如果您准备评估此 次构建的稳定性,Jenkins 会基于一些后处理器任务为构建发布一个稳健指数 (从 0-100 ), 这些任务一般以插件的方式实现。它们可能包括单元测试(JUnit)、覆盖率(Cobertura )和 静态代码分析(FindBugs)。分数越高,表明构建越稳定。下图中分级符号概述了稳定性的评 分范围。任何构建作业的状态(总分 100)低于 80 分就是不稳定的。 Jenkins 入门手册 By zjl 第 18 页 图32 构建稳定性界面 你也可以在当前 Job 主界面上看到它,如下图左下部分 图33 项目主界面 当前作业主页上还包含了一些有趣的条目。左侧栏的链接主要控制 Job 的配置、删除作 业、构建作业。右边部分的链接指向最新的项目报告和构件。 通过点击构建历史(Build History)中某个具体的构建链接,您就能跳转到 Jenkins 为这 个构建实例而创建的构建主页上。如下图 图34 构建历史界面 如果你想通过视图输出界面来监控当前任务的进展情况。你可以单击 Console Output(控制 台输出)。如果工作已完成,这将显示构建脚本产生的静态输出;如果作业仍然在运行中, Jenkins 将不断刷新网页的内容,以便您可以看到它运行时的输出。如下图: Jenkins 入门手册 By zjl 第 19 页 图35 控制台输出界面 4 Jenkins 插件 从 Jenkins 现有的功能扩展或开发者们为 Jenkins 提供的新功能都可以称之为 Jenkins 插件。有些插件可以无缝添加到您的构建过程,而其它,诸如除 CVS 和 Subversion 的 SCM 插件则需要源代码控制系统的支持。 4.1 Jenkins 插件安装 Jenkins 插件管理器允许您安装新的插件,和更新您 Jenkins 服务器上的插件。管理者 将连接到联机资料库,检索可用的和已更新的插件。如果您的 Jenkins 服务器 无法直接连 接到外部资源,您可以从 Jenkins 网站上下载。 在已运行的 Jenkins 主页中,点击左侧的系统管理—>管理插件进入如下界面: Jenkins 入门手册 By zjl 第 20 页 图36 插件管理界面 它包含四个标签: 更新:清单中列示了 Jenkins 为某些插件搜索到了可用的更新。列出的每个插件可以被选择 并应用更新。 可选安装:清单中列示了可用于安装(而不是目前已安装的)的所有插件。列出的每个插件 都可以被选择并安装。 已安装:清单中列示了已经安装的插件。 高级:允许您通过设定 HTTP 代理的方式使 Jenkins 与在线插件库建立连接。此外,还提供了 一个上传设备,可以安装你在 Jenkins 以外已下载的那些插件。 由上图可知,Jenkins 缺省集成了 maven2 插件,并且一旦插件有新版本,会提示更新新 版本插件。 如果想安装新的插件,可以点击 tab 分页中的可选插件。如下图: 图37 可选插件界面 从图可知,各种 Jenkins 插件根据之前所记述的类型进行分门别类。可勾选任意想安装 Jenkins 入门手册 By zjl 第 21 页 的 Jenkins 插件,点击 Install without restart 按钮进行安装。安装后,所有插件以 hpi 作 为后缀名放置在 plugins 文件夹下。如果是高级用户还可以自行开发插件方便具体项目使用。 注意:安装完成后需要重启 Jenkins 部署的容器。这样才能使用新装的插件。 4.2 Jenkins 插件安装示例 Jenkins 运行自动部署 war 包到 servlet 容器内,要实现这个功能必须安装一个插件。 图38 安装插件界面 图39 插件安装界面 好了,到此 Deploy Plugin 插件安装完成!
还剩23页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf

pdf贡献者

roychris

贡献于2015-03-29

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf