1.持续集成工具 Jenkins的优势java
1.1 持续部署 linux
1.2 持续集成 程序员
1.3 持续交付web
项目开发windows
项目的各个升级版本之间间隔时间太长,对用户反馈感知迟钝,没法精确改善
用户体验,用户流失严重。
那怎么作会好一些呢?
用 小版本不断进行 快速迭代,不断收集用户反馈信息,用最快的速度改进优化。
关注点
持续交付的关注点在于研发团队的最新代码可以尽快让最终用户体验到。centos
1.4 整体目标 整体目标
处 好处 1 :下降风险
一天中进行屡次的集成,并作了相应的测试,这样有利于检查缺陷,了解软件
的健康情况,减小假定。
处 好处 2 :减小重复过程
产生重复过程有两个方面的缘由,一个是编译、测试、打包、部署等等固定操
做都必需要作,没法省略任何一个环节;另外一个是一个缺陷若是没有及时发现,有
可能致使后续代码的开发方向是错误的,要修复问题须要从新编写受影响的全部代
码。
而使用 Jenkins 等持续集成工具既能够把构建环节从手动完成转换为自动化完
成,又能够经过增长集成频次尽早发现缺陷避免方向性错误。
处 好处 3 :任什么时候间、任何地点生成可部署的软件
持续集成可让您在任什么时候间发布能够部署的软件。从外界来看,这是持续集
成最明显的好处,咱们能够对改进软件品质和减小风险提及来口若悬河,但对于客
户来讲,能够部署的软件产品是最实际的资产。利用持续集成,您能够常常对源代
码进行一些小改动,并将这些改动和其余的代码进行集成。若是出现问题,项目成
员立刻就会被通知到,问题会第一时间被修复。不采用持续集成的状况下,这些问
题有可能到交付前的集成测试的时候才发现,有可能会致使延迟发布产品,而在急
于修复这些缺陷的时候又有可能引入新的缺陷,最终可能致使项目失败。
处 好处 4 :加强项目的可见性
持续集成让咱们可以注意到趋势并进行有效的决策。若是没有真实或最新的数
据提供支持,项目就会遇到麻烦,每一个人都会提出他最好的猜想。一般,项目成员
经过手工收集这些信息,增长了负担,也很耗时。持续集成能够带来两点积极效果:
(1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,
有些持续集成系统能够报告功能完成度和缺陷率。
(2)注意到趋势:因为常常集成,咱们能够看到一些趋势,如构建成功或失败、
整体品质以及其它的项目信息。
处 好处 5 :创建团队对开发产品的信心
持续集成能够创建开发团队对开发产品的信心,由于他们清楚的知道每一次构
建的结果,他们知道他们对软件的改动形成了哪些影响,结果怎么样。浏览器
2.持续集成工具
2.1 Jenkins 和 Hudson
目前最流行的一款持续集成及自动化部署工具。
Jenkins 和 Hundson 之间的关系:2009 年,甲骨文收购了 Sun 并继承了 Hudson 代
码库。在 2011 年年初,甲骨文和开源社区之间的关系破裂,该项目被分红两个独立的
项目:
Jenkins:由大部分原始开发人员组成
Hudson:由甲骨文公司继续管理
因此 Jenkins 和 Hudson 是两款很是类似的产品。
2.2 技术组合 技术组合
Jenkins 能够整合 GitHub 或 Subversion
Husband 也能够整合 GitHub 或 Subversion
两者既然是同源的工具软件,操做和指导思想就是接近的,因此本教程经过 Jenkins
为你们呈现。tomcat
3 JavaEE 项目部署方式对比服务器
3.2 自动化部署 自动化部署
“自动化”的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户
或测试人员使用的立刻就是最新的应用程序。app
搭建上述持续集成环境能够把整个构建、部署过程自动化,很大程度上减轻工做量。
对于程序员的平常开发来讲不会形成任何额外负担——本身把代码提交上去以后,服务
器上运行的立刻就是最新版本——一切都发生在无形中。
下面咱们讲带领你们一步一步搭建整套持续集成环境,这个操做过程只须要细心认
真便可,没有任何难度。可是须要优秀的你具有如下前置知识:
Linux 基本操做命令和 VIM 编辑器使用
Maven 的项目构建管理
GitHub 或 SVN 使用
4 Jenkins+SVN 持续集成环境搭建
4.1 系统结构总述 系统结构总述
建立虚拟机安装 Linux 系统
版本控制子系统
Subversion 服务器
项目对应版本库
版本库中钩子程序
持续集成子系统
JDK
Tomcat
Maven
Jenkins
主体程序
SVN 插件
Maven 插件
Deploy to Web Container 插件
应用发布子系统
JDK
Tomcat
4.2 linux版SVN的安装
centos7
2.安装svn
yum -y install subversion
3.配置
创建版本库目录
mkdir -p /svn/svnrepos
4.创建版本库
建立一个新的Subversion项目
svnadmin create /svn/svnrepos
五、进入svn/svnrepos/conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是账号密码文件
svnserve.conf SVN服务配置文件
六、设置账号密码
vi passwd
在[users]块中添加用户和密码,格式:账号=密码,如dan=dan
七、设置权限
vi authz
在末尾添加以下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限
八、修改svnserve.conf文件
打开下面的几个注释:注意要顶行写。前面不能有空格
anon-access = none #匿名用户不能操做
auth-access = write #受权用户可写
password-db = passwd #使用哪一个文件做为帐号文件
authz-db = authz #使用哪一个文件做为权限文件
九、启动svn版本库
svnserve -d -r /var/svn/svnrepos
10.SVN默认的打开端口是3690
能够经过下面的命令查看:
netstat -antp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 66486/svnserve
11.centos7 打开防火墙端口
$ sudo firewall-cmd --permanent --add-port=3690/tcp $ sudo firewall-cmd --reload
十二、在windows上测试
在elipse中导入SVN,输入SVN://ip
5.Tomcat的配置。
仅记录 Tomcat 服务器的帐号密码
配置文件位置:/opt/tomcat/conf/tomcat-users.xml
打开 Tomcat 解压目录/server.xml 修改 URL 地址的编码解码字符集
把 jenkins.war 放在 Tomcat 解压目录/webapps 目录下
启动 Tomcat 并经过浏览器访问
网址示例:http://192.168.70.131:8080/jenkins
注意:Linux系统必定要联网
选择以admin帐户继续。
界面以下
jenkins 中maven配置 这些是Maven在linux的安装路径下的setings.xml文件
JDK的配置 这些是linux中jdk的路径
4.7 建立工程
4.7.1 建立工程
4.7.3 源码管理
配好的效果
※注意:此时 Jenkins 的工做区中尚未代码,须要执行一次构建操做以后
4.7.4 构建
4.7.5 构建后操做
4.9 Linux 的 的 curl 命令 命令
Linux 的 curl 命令用来发送 HTTP 请求。
-X 参数:指定请求方式
-v 参数:显示响应结果
-u 参数:携带用户名/密码
-H 参数:携带请求消息头信息