基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)

持续集成环境的构建的意义

什么是可持续化?

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

没有持续集成的项目构建过程

    1、  开发人员将代码提交到SVN/GIT等代码管理工具中;
    2、  运维/测试 从SVN/GIT 下载最新的代码本地测试;
    3、  运维/测试 通过mstsc或者其他方式 进入部署环境机器;
    4、  停止要更新的服务。
    5、  替换程序包;
    6、  启动服务。

没有持续集成的项目构建会有哪些诟病?
项目做模块集成的时候,发现很多接口都不通==>需要人为排查,浪费大量时间
需要手动去编译打包最新的代码==>构建过程不透明
发布代码,上线,基本靠手工==>大部分工作都是重复而繁琐的事情,也很浪费大量时间

有持续集成的项目构建过程
    1.开发人员将代码提交到SVN/GIT等代码管理工具中;

    2.没了。

有持续集成的项目构建会有哪些好处?
根据我们的需求可以节省大量时间重复而繁琐事情的时间,增加更多的测试及修改BUG时间。

搭建环境的前期准备及工具说明

本次运行环境:Windows 7 64位操作系统/Windows Server 2012 R2 Standard

使用工具及版本:jdk-8u45-windows-x64 

                        apache-tomcat-7.0.75                   

                        jenkins.war(版本Jenkins2.121.1)

                         maven 

                         svn

                         Git-2.18.0-64-bit

                         freeSSHd

                         putty-64bit-0.70-installer 

工具说明

jdk:JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

jre:JRE是Java Runtime Environment缩写,指Java运行环境,是Sun的产品。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

apache-tomcat:Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。 Apache和Tomcat都可以做为独立的web服务器来运行,但是Apache不能解释java程序(jsp,servlet)。

两者都是一种容器,只不过发布的东西不同:Apache是html容器,功能像IIS一样;Tomcat是jsp/servlet容器,用于发布jsp及java的,类似的有IBM的websphere、BEA的Weblogic,sun的JRun等等。

jenkins:Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有。它的前身是hudson,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson。

maven:Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

svn:SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

Git:Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 [1]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

freeSSHd:SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。

putty:PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。


搭建环境

JDK安装与环境变量配置

    https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html

 apache-tomcat安装

     下载压缩版apache-tomcat-7.0.75,直接解压。

maven的安装 

    https://jingyan.baidu.com/article/4f7d5712a1306c1a21192746.html

svn安装

    不需要下载jenkins已经集成,可以jenkins中Global ToolConfiguration进行配置。

git安装

    https://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html

freeSSHd安装

    https://jingyan.baidu.com/article/f7ff0bfc1ebd322e27bb1344.html

putty安装

    https://jingyan.baidu.com/article/90bc8fc8b9bca1f653640ca5.html

Jenkins安装

    我们本次用的是Jenkins.war,下载完成后将其放在我们之前解压的apache-tomcat-7.0.75下面的webapps中。

    下载地址:https://jenkins.io/download/


Jenkins启动

1.命令启动
打开命令提示符。在命令提示符下,浏览到 jenkins.war 文件存在的目录。运行以下命令:
D:\apache-tomcat-7.0.75\webapps -jar Jenkins.war

2.tomocat中启动
在命令提示符下,浏览到 tomcat 文件夹所在的目录。浏览到此文件夹中的 bin 目录,然后在文件中运行 start.bat 
D:\apache-tomcat-7.0.75\bin>startup.bat

Jenkins登陆
 浏览器输入 http://localhost:8080
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第1张图片
    根据提示找到文件,使用Notepad++打开文件,将里面内容复制,粘贴在管理员密码栏上,点击继续。
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第2张图片
不知道为什么,我这个安装会离线,但是不去管它,后期的插件可以根据我们的需求进行安装。

有些人可能会出现下面这种情况,也可以直接选择安装推荐的插件。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第3张图片

    我们这里点击跳过插件安装,进入创建管理员用户页面。
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第4张图片


信息录入完成后,点击保存并继续。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第5张图片

点击Save and Finish,这样就完成了我们的Jenkins的启动配置。
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第6张图片

    点击开始使用Jenkins,则正式进入到我们的Jenkins页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第7张图片

以后的访问,我们直接输入我们之前创建的管理员用户进行登录即可。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第8张图片


Jenkins插件下载

我们由于某些原因跳过了插件的安装,我们这边先对我们本次需要用到的功能的插件进行下载。

如果需要更换Jenkins主目录,需要先看Jenkins系统配置更改主目录再进行插件的下载

点击按钮,进入管理Jenkins页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第9张图片


点击 按钮,进入插件管理页面。
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第10张图片

点击按钮,进入可选插件页面。


   

如果这时候我们会发现,没有让我们下载的插件列表,点击按钮,还出现了报错页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第11张图片

    我们进行以下操作,如果有插件列表则忽视以下操作。

    通过之前讲解的步骤,重新进入插件管理页面,点击按钮,进入设置页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第12张图片

在下方有一个升级站点的输入框,


将内容替换为

http://mirror.xmission.com/jenkins/updates/update-center.json

点击按钮,再点击按钮。

这回我们再点击插件按钮,进入插件下载页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第13张图片

本次我们需要下载的插件为:

Subversion Revert    GitLab  Pipeline Maven Integration  Maven Integration 

Publish Over SSH      Gitlab Hook


Jenkins系统配置

点击按钮,点击进入系统配置页面。

1.更改主目录

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第14张图片

主目录显示的是 C:\Users\Administrator\.jenkins 这是一个默认地址,我们可以更换主目录。

在环境变量中新增系统变量 

 变量名 JENKINS_HOME

变量值:D:\apache-tomcat-7.0.75\webapps\jenkins 

我这里做的例子,你可以放在你想放在的目录中。

配置好后,重启服务。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第15张图片

此时,登陆页面需要我们再去文件中找到密码粘贴上去。

因为我们更换了主目录,相当于进行了初始化,所以插件还是需要重新下载。

再次进入系统页面,我们可以看到主目录已经进行了更换。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第16张图片


2.Publish over SSH 配置

2.1 SSH的配置

      按照之前的方法,我们已经安装好SSH,右键图标,选择管理员身份运行。
    基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第17张图片
配置一个users,选择password stored as SHA1 hash
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第18张图片

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第19张图片
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第20张图片

配置完成后,重启SSH,然后再server Status 中启动我们的SSH Server

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第21张图片

2.2  Publish over SSH 配置


这里的内容我们不用去动。

  基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第22张图片


添加一个SSH Servies,按照下图配置,返回连接正确。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第23张图片




Jenkins全局工具配置

在管理Jenkins页面点击按钮进入全局工具配置页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第24张图片

1.JDK配置

点击按钮,进入配置页面,选择我们配置的环境变量。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第25张图片

2.Git配置

点击,进入配置页面,选择我们的git安装目录。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第26张图片

3.Maven配置

点击,进入配置页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第27张图片

此外,页面上方的maven配置按照图片选择,目录为maven的setting.xml

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第28张图片



Jenkins+git+maven简单构建

构建理想目的:当我们将代码进行提交时,Jenkins会监听代码版本管理系统(GIT/SVN等),如果有代码更新,会自动进行将我们提交完成的代码,打包发布到服务器上,服务停止,原有项目进行备份,新打包的项目放到指定位置,重启服务。

由于时间原因,除了监听代码版本,其他的会给大家实现,监听后期还会写一个博客,欢迎大家一起研究。

1.创建maven项目

在Jenkins首页,点击按钮,新建一个任务名称叫maven-test的maven项目。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第29张图片

2.配置maven项目

进入项目,点击按钮,进入项目的配置页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第30张图片

2.1Git配置

因为我们本次用的git,所以源码管理选择git,Repository URL为我们项目Git地址,Credentials为本地Git生成的id_rsa的key。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第31张图片

2.1.1 Credentials的配置

2.1.1.1 SSH公钥的生成

我们之前已经安装完Git,打开git bash,在控制台中输入以下命令。
$ ssh-keygen -t rsa -C "[email protected]"
一路回车生成SSH公钥。
公钥默认储存在账户的主目录下的 ~/.ssh 目录。进去看看:
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第32张图片

2.1.1.2 添加凭证

点击按钮,进入添加凭证页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第33张图片

2.1.1.3 选取Pom

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第34张图片

设置完成后,点击应用及保存按钮,回到项目页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第35张图片


2.1.1.4 测试连接结果

测试是否连接成功,点击按钮,进行测试。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第36张图片

点击按钮,可以查看构建的进程。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第37张图片

点击可以查看详细输出过程及结果。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第38张图片

2.2 部署脚本配置

2.2.1 bat脚本编写

脚本编写主要实现服务停止,将原有webappsa下文件按照时间进行备份,删除webappsa文件夹,创建webappsa文件夹,将新生成的项目放在新创建的webappsa下,启动服务。

其中因为tomocat中的shutdown.bat有时不靠谱,直接进行的强杀。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第39张图片

2.2.1 bat脚本配置

在Post Steps中选择Run only if build succeeds or is unstable 。


点击 按钮,选择 ,进入SSH设置页面。
基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第40张图片

这样我们就配置完成了,点击应用及保存按钮,回到项目页面。

进行项目的构建,点击查看进程。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第41张图片

点击按钮查看详细过程及结果。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第42张图片

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第43张图片

可以看到服务被我们强杀之后,原有项目进行了一个备份,新项目重新部署后,服务进行了重启,这样我们就简单的完成了本次构建。


Jenkins+svn+maven简单构建

构建的目的及实现的目标跟上面的一样,只不过换了一个代码管理软件Git换成了SVN,所以我这里主要讲一下如何配置SVN。

svn配置

新建一个maven项目,源码管理我们选择Subversion。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第44张图片

再点击Credenyials的按钮,添加我们的SVN账号。


添加完成后,选择我们刚才添加的账号。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第45张图片

其中pom.xml在我们获取的文件夹下,所以这里不需要修改。


点击应用及保存,返回项目页面。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第46张图片

点击按钮,开始项目的构建。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第47张图片

构建成功后查看构建结果,控制台输出内容显示成功。

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第48张图片

基于jenkins持续集成环境的简单构建(Jenkins+svn/git+maven)_第49张图片



你可能感兴趣的:(Jenkins)