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、手动部署
2.2、自动化部署
“自动化”的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员使用的马上就是最新的应用程序。
搭建上述持续集成环境可以把整个构建、部署过程自动化,很大程度上减轻工作量。对于程序员的日常开发来说不会造成任何额外负担——自己把代码提交上去之后,服务器上运行的马上就是最新版本——一切都发生在无形中。
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、版本控制子系统
详细过程我们就省略了,这里记录一下版本库的访问账号密码
特别提示: svnserve.conf 文件中 anon-access 一定要打开注释并设置为 none
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
依照提示,查看/root/.jenkins/secrets/initialAdminPassword 文件内容填入文本框
这里填入的密文同时也是 admin 账号的密码。(5)选择插件安装方式
选择哪种方式都不会对后续操作有太大影响。因为有需要的插件我们可以在后续有针对性的安装。在这里选择“安装推荐的插件”。
安装过程如下:
打×的插件是由于网络传输导致的安装失败,后面再重新安装即可。
这个步骤中如果选择了安装插件则 Linux 必须能够联网。(6)新建账号或以管理员身份继续
可以选择使用 admin 账户继续,后面有需要仍然有机会注册新账户。(7)开始使用 Jenkins
3.5、系统初始化配置
(1)系统管理界面
(2)全局安全配置
(3)全局工具配置:Maven Configuration
(4)全局工具配置:JDK
(5)全局工具配置:Maven
最后点击 save 保存
3.6、安装插件
安装插件时受到网络状况的影响有可能会失败,不要紧,多试几次,直到成功。
3.7、创建工程
3.7.1、创建工程
3.7.2、指定工程名称和工程类型
3.7.3、源码管理
这里一定要再选一下:
配好的效果:
注意: 此时 Jenkins 的工作区中还没有代码,需要执行一次构建操作之后Jenkins 才会下载代码。
3.7.4、构建
3.7.5、构建后的操作
3.7.6、手动构建
3.7.7、构建触发器
3.8、获取crumb值
3.9、Linux的curl命令
3.10、编辑SVN版本库中的钩子程序
3.11、测试
在 Eclipse 中提交修改,在页面上查看显示内容
3.12、补充
4、Jenkins+GitHub持续集成环境搭建
4.1、要点
4.2、Linux环境下安装Git
4.3、在Jenkins中指定Git程序位置
4.4、在GitHub上添加WebHook
4.5、在Jenkins内关闭“防止跨站点请求伪造”