Jenkins+Tomcat+svn+maven自动化构建简单过程
搭建好jenkins自动化构建之后,点击立即构建,即可将svn服务器上的源码自动编译构建,并打成war包,然后将这个war包以及编译好的项目复制到指定服务器的tomcat容器里,当svn服务器的代码有改动的时候,不用再重新编译、打包、部署和重启服务器,jenkins将自动将更改后的代码进行发布、部署、运行。
自动化构建之前,服务器上要装好JDK、maven和tomcat,方法自行百度,安装好jdk,配置环境变量就ok了(maven和tomcat不用配置环境变量,我用的版本是jdk1.8,maven3.3.3,tomcat7)。
步骤如下:
- Jenkins,可以去官网下载,不同的版本上可能会有一些差异,我这里使用的是2.20版本的。直接下载war包就可以了,放到tomcat的webapps目录下,运行tomcat就行。

- 启动tomcat之后,在浏览器输入地址进行访问:http:192.168.xxx.128:8080/jenkins,初次访问的页面如图:
去到这个目录下查看这个文件,就知道登录密码了:
- 输入密码之后会提示选择安装的插件,第二次登录的时候就没有这个页面了:
推荐选择前者,然后等待安装完成。
- 安装完成后会提示创建一个新的用户,输入相应的信息,点击Save and Finish

- 安装成功了,开始jenkins之旅吧!

- 贴一个jenkins的主页面,之后需要进行一些配置。

- 点击“系统管理”,右边黄色字体的内容可能会提示字符编码不对,没关系,改一下tomcat的编码集就OK了。
打开tomcat根目录,进入conf文件夹,使用vim server.xml对其配置文件进行修改,找到Connector标签,在其中添加URIEncoding="UTF-8",然后保存退出,重启tomcat再次登录jenkins后就不会有那个黄色的提示了。
- 进行JDK的配置,点击“系统管理”->“Global Tool Configuration”,点击新增jdk,别名可以随便取,取消自动安装,可以使用服务器本机的jdk,在JAVA_HOME那里写上绝对路径就可以了,如果路径不对或者找不到jdk,jenkins会自动提示。

- 同理,将maven也配置好。

- 在进行新建项目之前还有一些步骤需要操作,不然仍无法新建maven项目。点击“系统管理”->“插件管理”,点击“可选插件”,在过滤处输入maven,将“Maven Integration plugin”选中,点击直接安装。

- 安装成功后点击返回首页。

- 点击创建一个新任务

- 选择“构建一个maven项目”,输入项目名称,点击OK

- 项目的配置里边只更改了少部分,其他的都默认就可以了,首先是“源码管理”,我这里用的是svn上的源码,使用的svn是阿里的阿里云code,填上svn地址就可以了,如果需要身份验证的也可以在上面填写,如果地址不对jenkins也会提示错误。

- 然后是“构建触发器”,我选择的是默认的。

- 然后是“Built”,构建的时候执行了一个全局的命令,当然也可以什么都不写,构建的时候我执行了一下maven的clean和install

- 还有一些其他的功能,例如构建的时候执行一个全局的linux命令,构建完成后发送email通知等等,本着简单的原则,这里都没有做设置。上面说的东西改完之后,点击“保存”,然后回到主页面,就会看到刚才新建的项目,点击项目名右侧的下拉箭头,点击“立即构建”。

- 点击左侧菜单栏下方的进度条,可以查看构建过程的控制台输出。

- 第一次构建的时候需要下载maven依赖的jar包和一些必要插件,所以可能会需要一点时间,去喝杯咖啡吧~
回来一看还没有好,唉~再去吃根香蕉吧~
- 漫长的等待,它终于好了!
注意这里的这个地址,jenkins将编译打包后的war文件放在了这个目录下面:
没问题,不止war包,编译好的项目也放到了该目录下,到此为止,就使用jenkins将svn仓库里的代码编译并打包好了,下面需要做的就是将这个打包后的文件部署到tomcat里边。 - 回到主页面,点击项目名称右边的下拉箭头,选择“配置”
sorry,忘了一点,在使用jenkins部署项目的时候,还需要一个插件,先进到“系统管理”->“管理插件”页面,同理,在“可选插件”标签下,在过滤出输入:deploy,选择下面的“Deploy to container Plugin”,点击“直接安装”,等待安装完成。 - 在部署之前,还有一些必要的操作,需要对服务器的tomcat进行一些设置,进入tomcat的conf目录,对tomcat-users.xml进行编辑,在tomcat-users标签下添加如下内容,username和password根据自己填写,后期需要用到这个,然后保存退出,重启tomcat

- 重启完tomcat之后,进入jenkins里,对刚才的项目再次进行一些配置,点击“构建后操作”,进行一些配置:
对一些参数进行说明:
WAR/EAR files:上面自动化编译后生成的war包所在的路径,注意格式和名称,可以去刚才生成war包的目录看一下再来这里填写

Context path:项目部署完成之后的访问路径,例如:http://192.168.1.1:8080/wb,这个可以根据自己的需要随意填写。
Manager user name和Manager password就是上一步在tomcat里配置的用户名和密码,填写在这里就可以了。
Tomcat URL:tomcat所在服务器的地址,例如http://192.168.201.128:8080/
这些东西填好之后就可以保存了,保存完之后回到主页面,再进行一次构建。
- 这次是不是比第一次构建的快多了,而且你也会发现控制台输出的信息,已经将构建好的war包部署到指定的容器里了

- 去到指定的部署目录下看看,有没有东西部署过来,进来一看,哇,真的过来了诶,赶紧访问一下试试!!!
在浏览器里输入服务器地址已经项目地址访问,搞定,木问题啊~
- 全文结束,以后当再次签入代码的时候,点击一下“立即构建”就可以了,再也不用重新编译、构建、部署、重启服务器什么的了,当然你也可以把“构建触发器”设置成当仓库代码发生改变的时候进行构建,那样你会更加省事,也可以设置成每天晚上0点进行构建或者每隔15分钟进行一次构建,看需求了。
Jenkins+Tomcat+svn+maven自动化构建简单过程的更多相关文章
- jenkins+docker 持续构建非docker in docker jenkins docker svn maven
工欲善其事必先利其器,为了解脱程序员的,我们程序员本身发明了很多好用的工具,通过各种工具的组合来达到我们想要的结果 本文采用jenkins docker svn maven作为相关工具,项目sprin ...
- Java-Maven-Runoob:Maven 自动化构建
ylbtech-Java-Maven-Runoob:Maven 自动化构建 1.返回顶部 1. 自动化构建定义了这样一种场景: 在一个项目成功构建完成后,其相关的依赖工程即开始构建,这样可以保证其依赖 ...
- 【第十四篇】- Maven 自动化构建之Spring Cloud直播商城 b2b2c电子商务技术总结
Maven 自动化构建 自动化构建定义了这样一种场景: 在一个项目成功构建完成后,其相关的依赖工程即开始构建,这样可以保证其依赖项目的稳定. 比如一个团队正在开发一个项目 bus-core-api, ...
- Tomcat+Jenkins+SonarQube+SVN+Maven 集成自动化环境搭建(Windows10环境下)
说在前面的话: 从接到任务到完成共用了7天的时间.正常人用不到这个时间. 此时的功能表现是: 登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自 ...
- Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】
前言 因今年公司新产品线较多,为了降低耦合,达到业务分离.重用,提高内部开发效率的目的,采用了基于服务组件.前后端分离的架构体系.与之前传统单应用架构相比,系统部署.配置更加复杂,为了能够频繁地将软件 ...
- Jenkins实现SVN+Maven+Java项目的持续集成
Jenkins 2.46.1 Centos 7.3 JDK 7 安装jdk/maven/svn 在Jenkins所在的Linux机器安装jdk和maven,步骤就不说了,下面是环境变量: export ...
- 浅谈maven自动化构建工具
转载https://blog.csdn.net/zxm1306192988/article/details/76209062 Maven是什么[what] 1.Maven 是 Apache 软件基金会 ...
- Jenkins+Ant+TestNG+Testlink自动化构建集成(完整版)
这段时间折腾自动化测试,之前都是在Eclipse工程里面手工执行自动化测试脚本,调用Testlink API执行测试用例,目前搭建Jenkins自动化构建测试的方式,实现持续构建,执行自动化测试. 硬 ...
- Jenkins+Ant+TestNG+Testlink自动化构建集成
这段时间折腾自动化测试,之前都是在Eclipse工程里面手工执行自动化测试脚本,调用Testlink API执行测试用例,目前搭建Jenkins自动化构建测试的方式,实现持续构建,执行自动化测试. 硬 ...
随机推荐
- 一步步教你使用rem适配不同屏幕的移动设备
1.先说说几个前端常用的几个单位的概论: 1.px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch ...
- 实践 config drive - 每天5分钟玩转 OpenStack(170)
如果 instance 无法通过 metadata service 获取 metadata(无 DHCP 或者 nova-api-metadata 服务),instance 还可以通过 config ...
- SSH整合(一)hibernate+spring
1.导入maven节点 <dependencies> //测试用的 <dependency> <groupId>junit</groupId> < ...
- Xmpp实现简单聊天系列 --- ①openfire部署
1. 下载最新的openfire安装文件 官方下载站点:http://www.igniterealtime.org/downloads/index.jsp#openfire 2. 下载完成后,执行你的 ...
- CSS基础布局--居中对齐,左侧定宽右侧自适应
CSS页面布局是web前端开发的最基本的技能,本文将介绍一些常见的布局方法,涉及到盒子布局,column布局,flex布局等内容.本文中,你可以看到一些水平垂直居中的方法,左侧固定宽度,右侧自适应的一 ...
- seo从业者发展方向
对于很多朋友来说,seo就是一项比较简单的技能,内容+外链,就可以基本囊括seo的基本内容了.可能很多朋友对此不屑一顾,会说seo可是包含万象, 你需要懂网页设计.标签设计,分词优化.企业建站等等方面 ...
- reids数据类型
今天第一次开通,写的不好,请谅解 redis并不是简单的key-value存储,实际上它是一个数据结构服务器,支持不同类型的值,也就是说,我们不仅仅把字符串当作键所指向的值, 如下这些数据 ...
- mvc中razor的一个bug
具体东西就不多说了,所有编译,代码都是木有问题的. 结果预览页面的时候竟然告诉我编译错误,尼玛这不科学啊. 来看看错误页面 看着问题大概应该是缺少} ,或者多了个} 倒置的编译错误才对,但是编译生成完 ...
- memory库函数的实现
下面主要对常用的几个memory库函数的实现(memcpy.memmove.memset.memcmp): memcpy函数与memmove函数: 相同点: 两者实现的功能均为从src拷贝count个 ...
- 篇2 安卓app自动化测试-初识python调用appium
篇2 安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...