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自动化构建测试的方式,实现持续构建,执行自动化测试. 硬 ...
随机推荐
- try{} catch(…){} 讨论(转)
以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的.例如下面的代码: .try .{ .BYTE* pch ...
- 一个关于Python正则表达式的快速使用手册
一直在纠结自己的博客到底应该写一些什么东西,这几天发现自己的正则用的不是很熟练,于是想要写一篇关于正则表达式的博客,目的就是为了让自己以后要用而又不会的时候不至于像无头苍蝇一样到处乱撞. 有些人在碰到 ...
- Java中元组的使用
元组在计算机领域有着特殊的意义,这个名字听起来似乎有些陌生, 平时在写代码也基本没什么应用场景, 然而, 出人意料的是, 元组跟程序设计密切相关, 可能有的同学不知道, 关系数据库中的「纪录」的另一个 ...
- [Python]获取子线程异常信息
起因 今天在写东西的时候,用到了多线程.遇到了个问题: 子线程的异常,在父线程中无法捕获. 解决 问题代码 问题代码示例代码如下: import threading class SampleThrea ...
- java 8 Hashmap深入解析 —— put get 方法源码
每个java程序员都知道,HashMap是java中最重要的集合类之一,也是找工作面试中非常常见的考点,因为HashMap的实现本身确实蕴含了很多精妙的代码设计. 对于普通的程序员,可能仅仅能说出Ha ...
- Struts2之i18N国际化
对于i18n其实没有太多内容,一般的公司用不到这些内容,除非是跨国公司,但即便是跨国公司也不一定会使用i18n来进行国际化处理,所以本篇内容仅供大家了解,不做深入的探讨,希望通过本篇内容,可以帮助大家 ...
- 安全性测试之防范 DDoS 攻击
安全性测试之防范 DDoS 攻击 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90882 ...
- zookeeper入门与实践
概述 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 它有如下的一些特点: 简单 Zookeeper的核心是一 ...
- mysql 主从同步 实现增量备份
数据库复制 replication 的实现原理 1:主服务器凡运行语句,都产生一个二进制日志 binlog 2:从服务器不断读取主服务器的binlog 3:从主服务读取到的binlog,转换为自身可执 ...
- PAT 1057
Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir ...