Jenkins自动化部署Maven+SVN项目

本文主要讲解使用Jenkins进行项目的自动化部署,自动化部署可以大大减少手工部署的人员时间花销,提高工作效率。


1、下载Jenkins

  首先我们应该下载Jenkins的安装包进行安装。下面以Windows版本的Jenkins为演示,Linux版本的Jenkins操作与之类似。大家可以自己进行配置。下面去Jenkins的官网下载安装包 https://jenkins.io/

2、安装配置

  经由第一步下载自己所需要版本的Jenkins,以Windows版本为例,Windows版本的后缀为.msi文件。安装过程直接下一步就行。安装成功后,Jenkins服务直接开启,可以在Window的服务中进行查看,之后我们需要对Jenkins的默认设置进行修改,由于Jenkins的默认端口号与Tomcat默认的端口号同为8080,因此我们需要修改Jenkins的默认端口号,在Jenkins的安装根目录找到jenkins.xml配置文件,如下图所示:
这里写图片描述
修改后需要特别注意的是需要重启Jenkins服务,在Windows的服务中找到Jenkins右键重新启动即可。
这里写图片描述
完成后打开浏览器输入http://localhost:6060/(根据自己的设置选择端口号)
首次进入需要输入密码,根据页面上的提示找到指定的文件获取里面的密码即可。如下图所示(由于第一次没有截图,在网上找了张图片)
这里写图片描述
输入正确密码后进入安装插件界面,如下图所示:(网络图片),选择使用第一个推荐插件安装。
这里写图片描述
等候插件的安装,插件安装完成后进入创建用户的界面,用户可以创建指定名称的用户作为登录人。如下图所示:
这里写图片描述
配置完上面的信息之后进入Jenkins的主界面:
这里写图片描述
此时不应该急于创建项目,我们需要安装一下其他的插件。

3、插件下载

  点击系统管理—插件管理,进入插件管理界面,在可选插件中搜索搜索下载以下插件(Maven Integration plugin 、Publish Over SSH、Deploy to container Plugin、Subversion Plugin)进行安装。安装完成需要重启Jenkins服务。如下如所示:
插件管理

4、配置Jenkins插件

  安装完成之后我们需要配置一下Jenkins的Maven与JDK配置。系统设置–全局工具配置找到Maven和JDK配置,点击Save,如下图所示:
这里写图片描述
这里写图片描述

5、配置SSH Server

  接下来配置一下SSH Servers,SSH Servers主要配置一下我们将要部署的服务器信息, Passphrase可以是私钥密码或者服务器登陆密码,Path to key为私钥路径, Key为私钥,Key优先级大于Path to key,新手推荐使用服务器登陆密码,点击保存。如下图所示:
这里写图片描述
完成至此,Jenkins的配置已经告于段落。下面进行Jenkins的项目创建。

6、创建项目

  此时选择新建任务,选择构建一个Maven项目,输入项目的名称,点击确认。如下图所示:
这里写图片描述

7、配置项目

进入Jenkins的项目的配置界面,此环节最为重要,也容易出错,望大家一定注意。此处丢弃旧的构建策略,在这里我们需要填写自定义的丢弃旧的构建设置,这里我们将“保持构建的天数”以及“发布包保留天数”均设置为7天,将“保持构建的最大个数”设置为10条,而我们每次取用jar包或war包时都只想获取最新版本,所以说我们这里只保存最新版的软件版本信息,因而在“发布包最大保留#个构建”中填写1,填写完之后,点击【保存】按钮即可使新的设置生效

这里写图片描述

接下来在源码管理中配置版本控制信息。本文以SVN为例,Repository URL为项目SVN的URL连接, Credentials为SVN账户信息,首次配置需要点击后面的ADD进行添加:在username与password上输入用户的SVN账号的信息。
这里写图片描述
这里写图片描述

构建触发器中勾选Delete workspace before build starts
Delete workspace before build starts:默认删除所有的,也可以设置删除特定的文件
- Patterns for files to be deleted:正则匹配删除哪些文件
- Apply pattern also on directories:规则是否也应用到文件夹
- Check parameter:是否删除,是个bool值,true则删除,false不删除.为毛感觉这个有点鸡肋
- External Deletion Command:执行外部删除命令
这里写图片描述

下面在Post Steps中选择Send files or execute commands over SSH配置文件上传信息与本地文件位置等信息(关键步骤)
Name:选择我们在系统管理-系统设置中创建的SSH Server名称,
Source files:复制到运程机上的文件,相对workspace的路径,也支持表达式,如上图中的“*/.war”。
Remove prefix:文件复制时要过滤的目录,如上图中的target目录。
Remote directory:文件得到到远程机上的目录,此目录是相对于“SSH Server”中的“Remote directory”的,如果不存在将会自动创建。
Exec command:执行的脚本,一般都是停止服务、备份文件、复制最新war包、启动服务。下面是我项目执行的脚本,大家可以以此为例子进行修改。

cd  /usr/local/apache-tomcat-7.0.57

#stop tomcat
sh bin/shutdown.sh

sleep 10

#check bak directory
if ! [ -d ./bak ]; then
    mkdir bak
fi

#backup adcenter
if [ -d ./webapps/inxedu ]; then
    #tar zcf inxedu_bak'date"+%Y%m%d%H%M"'.tar.gz webapps/inxedu
    mv webapps/inxedu.war bak/
    rm -rf webapps/inxedu*
fi

cp /home/jenkins/*.war /usr/local/apache-tomcat-7.0.57/webapps/inxedu.war

sh bin/startup.sh

注意:

1、这里的Remote Directory是相对系统配置里的Remote Directory的。比如说我这里的系统配置里的Remote Directory设置的是“/root”,然后假如我这里设置的是“/root/bao”。那么那个war包就没有按照我的意思传到/root/bao目录下,而是传到了/root/root/bao目录下。
2、有部分人不喜欢使用linux的编辑器,自己创建文件后修改后缀为.sh文件,在上传至服务器,此操作存在文件格式的问题。我经过这样的操作运行上传的脚步执行报错。
解决办法参考:https://blog.csdn.net/u012453843/article/details/69803244/

这里写图片描述
这里写图片描述
下面还可以配置邮件提醒已经定时构建等等不在一一描述。点击应用成功创建项目。

8、构建项目

执行下面操作即可完成项目的自动化部署、日志查看等操作。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述


到此自动化部署已经配置完成,希望可以帮助大家,如果文章中有哪些地方出现解释错误或不理解的地方,可以留言指出。我们一起共同进步。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值