专栏首页Linyb极客之路jenkins+maven+svn实现简单的一键发布

jenkins+maven+svn实现简单的一键发布

前言

在安装之前,我想说明一下本文的目的,jenkins的一款持续集成工具,

它可以做的事情很多,其中一个主要的功能就是简化部署流程

回想一下我们的发布流程:

1.本地把项目打包

2.通过FTP等工具,传输到服务器

3.关闭tomcat,把打包的项目放到webapp目录下

4.启动tomcat

如果每次都这么搞的话,不仅慢,而且容易出错。

有了jenkins以后,发布流程可以是这样:

1.用户在jenkins上点击某个按钮进行发布

2.jenkins收到发布命令

3.jenkins从SVN上把源代码download下来

4.jenkins根据你设置的mvn命令进行打包

5.jenkins把你打包的好的war工程传输到tomcat的webapps目录下

6.tomcat启动

对于程序员而言,只要做两件事:

1.在jenkins上配置某个项目的部署流程

2.在jenkins上点击某个项目的部署按钮,进行一键部署

实际上,配置往往只做一次,其余的时候,你只要一键部署就可以了

一、安装jenkins

1.下载JENKINS

首先去jenkins官网下载jenkins,官网有两个下载的选择:

如果是公司使用,建议选择左边的。

如果是个人使用,可以使用右边的

如果要下载安装版本,点击下拉箭头,windows是exe,linux是rpm包

如果要下载war包,直接点击,不要点下拉箭头,我下载的是war包

2.设置JENKINS_HOME

下载完成以后,最好先设置JENKINS_HOME;

否则,对于windows系统,会默认装在C盘

linux系统不清楚默认在哪里

但是你设置了以后,就会在你想要的位置,生成jenkins的东西

关于设置HOME,跟设置JAVA_HOME一样,windows就不说了,linux的话,也是跟JAVA一样,修改/etc/profie文件即可

3.启动JENKINS

使用war包的同学跟其它工程一样,放到tomcat下,启动tomcat即可。

使用安装包的同学,windows下,在服务中启动,跟mysql、oralce服务的启动是一样的,linux的同学自行研究

启动tomcat时会报错:

这是因为jenkins不知道从什么时候开始,把http访问改成了https,但war包的配置文件却没有改,

不过这不影响你启动和访问,在后面的操作中,我们会改

4.访问JENKINS

在浏览器中输入http://127.0.0.1:8080/jenkins,就进入到jenkins了,具体ip和端口,根据你实际的环境来

首先是输入初始密码,这个有提示,跟着提示找到文件,找到密码,输入即可

其次就是进入插件选择页面:

我选择了Skip Plugin Installations,我跳过了插件的初始化,事实上,我并不想跳过。

如果不跳过,jenkins是有一个让你安装推荐插件的选项的。

但是因为启动的那个异常,jenkins把获取插件的地址从http改成了https,而war包没有改

导致你点击“推荐插件下载”的按钮时,根本没用。

所以只能跳过了,后面我们可以自己装插件

接下来就是创建一个admin用户,注意,创建完之后,之前的admin帐号会消失,初始密码的文件也不复存在了

所以,你这里输入的用户名,可以就是 admin

创建完成以后,就完成了Jenkins的安装和启动

二、安装插件

1. 修改连接地址

左侧点击系统管理,右侧选择管理插件,

选择“高级“面板:

拉下来,把http,改成https,点击“提交”,再点击“立即获取”

2.安装MAVEN插件

为什么要安装maven插件?你点一下新建,是不是下面这个图

如果之前你用过别人的jenkins的话,旧版的这里是有个创建maven 2/3项目,这么一个选项的,新版这里也是能选择创建maven项目的

你没有,是因为你没有安装maven插件,所以要安装maven插件,这样才能构建maven项目

还是,系统管理——插件管理——可选插件

这个时候,你应该是可以看到可选插件列表了,因为之前的操作,我们已经正确的修改了站点的url

在过滤中,输入maven,找到maven integration plugins:

勾选,安装,等待一些时间以后,你会发现安装出错了

不要紧,看详细信息

大致的意思就是,文件的签名验证不正确,不管它,注意看这个红色的路径。找到这个文件,打开它

把这个路径复制下来,放到浏览器,就可以把这个插件下载下来。

我的建议是,在本地建一个jenkins的关于maven插件的目录,把跟maven相关的插件都放到这个目录下

其它几个插件也一一找到对应的文件,找到url,下载

然后手动上传插件。上传插件的在:系统管理——管理插件——高级,你可以看到上传插件的地方

注意,上传的顺序,要跟报错的顺序一样,因为这些插件都是有依赖的先后顺序的

不过即使顺序错了也没关系,系统会提示你的:

安装完毕以后,你就可以创建maven项目了

3. 安装SVN插件

安装SVN插件的方式跟安装Maven插件的方式是一样的,SVN插件的名字叫做:Subversion Plug-in

安装完SVN后,你在新建项目的时候,源码管理这里就多出一个Subversion的选项

安装Deploy插件的方式跟安装Maven插件的方式还是一样的,Deploy插件的名字叫做:Deploy to container Plugin 安装完SVN后,你在新建项目的时候,构建后操作这里,下拉选项里会多出一项Deploy war/ear to a container

三、创建构建项目

1. 配置JDK和MAVEN

在创建项目之前,先要配置JDK和Maven

点击,系统管理——Global Tool Configuration

仿照下面的图配置就可以

仿照我上面的方式,写入你自己的配置就可以

2. 创建构建项目

废话不多说了,仿照我下面的配置就可以了

这里说明下,

第一个是SVN的地址,

第二个是Credentials,其实就是你的SVN帐号和密码,一开始这里肯定是没有的,需要你点击add添加

把你的SVN帐号和密码加进去就好了

这里需要说明下,构建后操作,把通过maven命令打好的war包,copy到tomcat中,

这要求tomcat开启热部署,说白了就是在tomcat的conf目录下的tomcat-users.xml中加入tomcat的用户密码

上面面这段话,你可以完全照抄,当然用户名和密码根据你自己的需要来配置

这里设置的用户名和密码,必须和你填入上面Deploy to cotainer板块中的Manager user name和password一致

另外,关于Deploy插件,虽然写着只支持到tomcat7.x,但实际上,8.x的tomcat它照样可以支持

3. 开始构建 至此,一个构建项目创建完毕,赶紧点一下构建按钮试试吧:

变更:上面的方式,最后的部署采用的是tomcat的热部署,这种方式有一个极大的弊端,就是发布多次之后,内存会持续上涨。

所以这并不是一种好的方式。

一种更加好的方式是使用脚本,将tomcat关闭,然后把webapps下的旧的部署应用删除,再把新的war包放过来,然后启动

所以,我们这里需要用到另外一个插件:PostBuildScript:

只要把你自己写好的shell脚本放进来就可以了。

当然这里需要你对shell编程有一些了解

关于这个deploy.sh的实现,大家可以参考这篇文章:http://www.linuxidc.com/Linux/2016-01/127258.htm

本文分享自微信公众号 - Linyb极客之路(gh_c420b2cf6b47),作者:极客之路

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我珍藏的神兵利器 - 效率工具

    快速启动应用+文件搜索+各种实用插件(计算器、翻译、网页快速访问等)。我的最爱,没有它我几乎半残。

    lyb-geek
  • 框架设计原则

    说说我的理解。这里其实是从框架结构的解读来解读,这里的包指的是 Maven 的 module。

    lyb-geek
  • 一篇文章看懂分布式一致性算法

    分布式服务顾名思义服务是分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过rpc来交互或者是http service来...

    lyb-geek
  • 盘点那些2019好用的Sketch插件(附下载地址)

    在Sketch中直接将你的设计稿做成高保真的Mockup,是不是觉得很方便呢?Vectary就是这样一款插件。这款插件内置了多种设备的真实3D模型,包含手机,电...

    用户5009027
  • 在Chrome中使用ssh使用一种什么体验

    zhaoolee
  • 珍藏已久的 Chrome 插件

    这里主要推荐本人常用的 Chrome 插件,能够帮助你更加便捷高效的使用 Chrome 浏览器。

    用户3596197
  • [Jenkins]5分钟系列之二动态获取代码分支和tag

    追马
  • 推荐 8 个超实用的谷歌 Chrome 插件,大牛都在用

    程序员最喜欢的浏览器非 Chrome 莫属,Chrome 快捷方便而且功能强大,是当下IT圈最受欢迎的浏览器。这次我们精选的几款插件,对你的工作效率会大幅的提升...

    崔庆才
  • Android 插件化与测试

    插件化技术最初源于免安装运行apk的想法,支持插件化的app可以在运行时加载和运行插件,这样便可以将app中一些不常用的功能模块做成插件,一方面减小了安装包的...

    用户5521279
  • 吐血推荐珍藏的Visual Studio Code插件

    作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这...

    Jackeyzhe

扫码关注云+社区

领取腾讯云代金券