1、持续集成工具

1.1、Jenkins和Hudson

目前最流行的一款持续集成及自动化部署工具。
Jenkins 和 Hundson 之间的关系:2009 年,甲骨文收购了 Sun 并继承了 Hudson 代码库。在 2011 年年初,甲骨文和开源社区之间的关系破裂,该项目被分成两个独立的项目:
(1)Jenkins:由大部分原始开发人员组成
(2)Hudson:由甲骨文公司继续管理

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

1.2、技术组合

(1)Jenkins 可以整合 GitHub 或 Subversion

(2)Husband 也可以整合 GitHub 或 Subversion

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

2、Java EE项目部署方式对比

2.1、手动部署

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins

2.2、自动化部署

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

jenkins搭建选择哪个版本 jenkins原理和搭建_持续集成_02

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

3、Jenkins+SVN持续集成环境搭建

3.1、系统结构总述

(1)创建虚拟机安装 Linux 系统
(2)版本控制子系统

  • SVN服务器
  • 项目对应版本
  • 版本库中钩子程序

(3)持续集成子系统

  • JDK
  • Tomcat
  • Maven
  • Jenkins
  • 主体程序
  • SVN插件
  • Maven插件
  • Deploy to Web Container 插件

(4)应用发布子系统

  • JDK
  • Tomcat

3.2、版本控制子系统

详细过程我们就省略了,这里记录一下版本库的访问账号密码

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_03


特别提示: svnserve.conf 文件中 anon-access 一定要打开注释并设置为 none

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_04

3.3、应用发布子系统

详细过程同样省略,仅记录 Tomcat 服务器的账号密码
配置文件位置:/opt/tomcat/conf/tomcat-users.xml

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat_user" password="123456"
roles="manager-gui,manager-script,manager-jmx,manager-status" />

3.4、Jenkins主体程序安装配置

(1)把 jenkins.war 放在 Tomcat 解压目录/webapps 目录下

(2)打开 Tomcat 解压目录/server.xml 修改 URL 地址的编码解码字符集

vim /opt/tomcat/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1" 72 connectionTimeout="20000" 73 redirectPort="8443" URIEncoding="UTF-8"/>

(3)启动 Tomcat 并通过浏览器访问
网址示例:http://192.168.70.131:8080/jenkins

(4)解锁Jenkins

jenkins搭建选择哪个版本 jenkins原理和搭建_持续集成_05


依照提示,查看/root/.jenkins/secrets/initialAdminPassword 文件内容填入文本框

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_06


这里填入的密文同时也是 admin 账号的密码。(5)选择插件安装方式

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_07


选择哪种方式都不会对后续操作有太大影响。因为有需要的插件我们可以在后续有针对性的安装。在这里选择“安装推荐的插件”。

安装过程如下:

jenkins搭建选择哪个版本 jenkins原理和搭建_持续集成_08


打×的插件是由于网络传输导致的安装失败,后面再重新安装即可。

这个步骤中如果选择了安装插件则 Linux 必须能够联网。(6)新建账号或以管理员身份继续

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_09


可以选择使用 admin 账户继续,后面有需要仍然有机会注册新账户。(7)开始使用 Jenkins

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_10

3.5、系统初始化配置

(1)系统管理界面

jenkins搭建选择哪个版本 jenkins原理和搭建_持续集成_11

(2)全局安全配置

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_12

(3)全局工具配置:Maven Configuration

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_13

(4)全局工具配置:JDK

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_14

(5)全局工具配置:Maven

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_15

最后点击 save 保存

jenkins搭建选择哪个版本 jenkins原理和搭建_jenkins搭建选择哪个版本_16

3.6、安装插件

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_17

安装插件时受到网络状况的影响有可能会失败,不要紧,多试几次,直到成功。

3.7、创建工程

3.7.1、创建工程

jenkins搭建选择哪个版本 jenkins原理和搭建_jenkins搭建选择哪个版本_18

3.7.2、指定工程名称和工程类型

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_19

3.7.3、源码管理

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_20

jenkins搭建选择哪个版本 jenkins原理和搭建_持续集成_21

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_22

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_23

这里一定要再选一下:

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_24

配好的效果:

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_25

注意: 此时 Jenkins 的工作区中还没有代码,需要执行一次构建操作之后Jenkins 才会下载代码。

3.7.4、构建

jenkins搭建选择哪个版本 jenkins原理和搭建_持续集成_26

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_27

3.7.5、构建后的操作

jenkins搭建选择哪个版本 jenkins原理和搭建_jenkins搭建选择哪个版本_28

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_29

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_30

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_31

jenkins搭建选择哪个版本 jenkins原理和搭建_持续集成_32

3.7.6、手动构建

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_33

3.7.7、构建触发器

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_34


jenkins搭建选择哪个版本 jenkins原理和搭建_jenkins搭建选择哪个版本_35

jenkins搭建选择哪个版本 jenkins原理和搭建_jenkins搭建选择哪个版本_36

3.8、获取crumb值

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_37

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_38

3.9、Linux的curl命令

jenkins搭建选择哪个版本 jenkins原理和搭建_jenkins搭建选择哪个版本_39

3.10、编辑SVN版本库中的钩子程序

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_40

3.11、测试

在 Eclipse 中提交修改,在页面上查看显示内容

3.12、补充

jenkins搭建选择哪个版本 jenkins原理和搭建_版本库_41

4、Jenkins+GitHub持续集成环境搭建

4.1、要点

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins_42

4.2、Linux环境下安装Git

jenkins搭建选择哪个版本 jenkins原理和搭建_jenkins搭建选择哪个版本_43


jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_44

4.3、在Jenkins中指定Git程序位置

jenkins搭建选择哪个版本 jenkins原理和搭建_jenkins搭建选择哪个版本_45

4.4、在GitHub上添加WebHook

jenkins搭建选择哪个版本 jenkins原理和搭建_持续集成_46

4.5、在Jenkins内关闭“防止跨站点请求伪造”

jenkins搭建选择哪个版本 jenkins原理和搭建_Jenkins学习_47