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自动化构建测试的方式,实现持续构建,执行自动化测试. 硬 ...
随机推荐
- 基于CDIF实现的——API在线自动化测试
传统的测试工具在测试一个API的时候,必须手动填写这个API所需要接收的所有信息,比如一个查询航班动态的API,他接收两个输入字段,一个叫flight, 一个叫date,那么测试这个API的用户,需要 ...
- 【转】flash air中读取本地文件的三种方法
actionscript中读取本地文件操作有两种代码如下 1.使用File和FileStream两个类,FileStream负责读取数据的所以操作:(同步操作) var stream:FileStre ...
- 老李知识普及:web安全性的两大权威组织
老李知识普及:web安全性的两大权威组织 两个重要的WEB应用安全组织-WASC/OWASPWeb Application Security Consortium (WASC)a.WEB应用安全标准的 ...
- linux从入门到精通学习-NFS
NFS网络文件系统 功能 nfs[network file system] 网络文件系统 是FreBSD系统支持的一种系统,允许在网络 上与其它人共享使用文件或文件夹 采用C/S模式 端口号 在vim ...
- Mybatis基础学习(四)—关系映射
一.模型分析 user和orders user---->orders 一个用户可以创建多个订单,一对多. orders--->user 一个订单只由一个用户创建,一对一. orders ...
- 现代3D图形编程学习-设置三角形颜色(译)
本书系列 现代3D图形变成学习 http://www.cnblogs.com/grass-and-moon/category/920962.html 设置颜色 这一章会对上一章中绘制的三角形进行颜色的 ...
- FPGA中将十进制数在数码管中显示(verilog版)--二进制转换为BCD码
这周有朋友问怎样在fpga中用数码管来显示一个十进制数,比如1000.每个数码管上显示一位十进制数.如果用高级语言来分离各位,只需要分别对该数做1000,100,10对应的取商和取余即可分离出千百十个 ...
- CPP--借助神器VS理解内存存储
之前也有想了解这些,第一个不是学底层的不知道从何理解,第二个上网搜概念,大牛们三言两语就结束了,举得例子也比较复杂,对于非C方向的可能有点吃力,所以一直没理解. 今天偶然发现原来还要内存窗口之说,就慢 ...
- URL传中文参数导致乱码的解决方案之encodeURI
通过URL传中文参数时,在服务端后台获取到的值往往会出现乱码问题,解决方案有很多种,本文主要介绍如何通过encodeURI来解决中文乱码问题: first:前端传递参数的时候需要对中文参数进行两次en ...
- 我们一起学Docker(一)
一.什么是Docker? Docker是一个基于LXC(Linux Container,Linux容器),以及cgroup的上层工具,通过对LXC,cgroup及相关系统命令的封装,使得用户可以非常方 ...