什么是持续集成/持续发布?
顾名思义
持续集成/持续发布:
开发(git)git主库–>jenkins(git+jdk+tomcat+maven打包+测试)–>发布到tomcat服务器
说白点就是 通过Jenkins界面上的按钮 根据自己的需求 连接git仓库 然后发布到指定的tomacat服务器中
Jenkins概述
是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用 于持续、自动的构建/测试软件项目、监控一些定时执行的任务。Jenkins用Java语言编写,可在 Tomcat等流行的servlet容器中运行,也可独立运行。 jenkins通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT。 jenkins构建工具有Maven、Ant、Gradle。
功能就是
Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。
意思是我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通
过给定的代码地址URL,将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发
布到web容器中。
工作流程
- 开发者检入代码到源代码仓库。
- CI系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区。
- CI系统会在对应的工作区内执行构建过程。
- (配置如果存在)构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等等)给相关的当事人。
- (配置如果存在)如果构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,诸如一个文件服务器或者像Java.net、 SourceForge之类的网站。
- CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。
Jenkins就是这么一个CI系统。之前叫做Hudson。
废话不多说 开始实战案例教程
我现有的环境三台虚拟机分别的有自己的工作
一个 创建GitHub仓库 用于存放代码
一个 部署jenkins
另一个 从当tomcat 网站服务
部署git
- 安装依赖包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
2.git官网下载最新版本GIT
所有安装包
解压并cd到解压目录
unzip 压缩包
进入目录
3.安装git:
解压并cd到解压目录
tar xf git-2.9.5.tar.gz
cd git-2.9.5/
make prefix=/usr/local/git all #编译源码包
make prefix=/usr/local/git install #源码安装
注意: 如果出现这个问题 则是 gcc没有安装
前方高能错误 第一次安装都有问题
SUBDIR perl
/usr/bin/perl Makefile.PL PREFIX='/usr' INSTALL_BASE='' --localedir='/usr/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] Error 2
make: *** [perl/perl.mak] Error 2
查看相应出错的地方,vi perl/Makefile.PL
use ExtUtils::MakeMaker;
猜测应该是缺少对应的包,安装上即可
sudo yum install perl-ExtUtils-MakeMaker
错误一:
CC credential-store.o
/bin/sh: cc: command not found
make: *** [credential-store.o] 错误 127
报这个错误的原因是没有安装gcc,需要sudo yum install gcc
错误二:
CC credential-store.o
In file included from cache.h:4:0,
from credential-store.c:1:
git-compat-util.h:280:25: 致命错误:openssl/ssl.h:没有那个文件或目录
#include <openssl/ssl.h>
^
编译中断。
make: *** [credential-store.o] 错误 1
报这个错误的原因是没有安装libssl-dev,需要sudo yum install openssl-devel
错误三:
tp.h:6:23: 致命错误:curl/curl.h:没有那个文件或目录
#include <curl/curl.h>
^
编译中断。
make: *** [http.o] 错误 1
报这个错误的原因是缺少libcurl-dev or libcurl-devel,需要sudo yum install libcurl-dev libcurl-devel
错误四:使用make prefix=/usr/local all时报错:
http-push.c:18:19: 致命错误:expat.h:没有那个文件或目录
#include <expat.h>
^
编译中断。
make: *** [http-push.o] 错误 1
报这个错误的原因是缺少expat,需要sudo yum install expat-devel
错误5
/usr/bin/perl Makefile.PL PREFIX='/usr/local' INSTALL_BASE='' --localedir='/usr/local/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] 错误 2
make: *** [perl/perl.mak] 错误 2
报这个错误的原因是缺少对应的包,需要sudo yum install perl
修改环境变量:
vim /etc/bashrc
#/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次!!!登录!!!时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置.
#/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
PATH=$PATH:$HOME/bin:/usr/local/git/bin
source /etc/bashrc
测试是否安装成功:
git --version
git version 1.8.3.1
安装完成
总结主要遇到的问题:可能是新的centos7 里面什么都没有,所以导致各种插件出错