jenkins+maven+svn自动部署和发布的详细图文教程
作者:菜鸟的奋斗ing 时间:2023-08-24 05:18:07
Jenkins
Jenkins是一个开源的、可扩展的持续集成、交付、部署的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。
通常我们使用Jenkins主要实现以下功能:
持续集成指的是,频繁地(一天多次)将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。
持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
正文开始
博主前几个月刚被忽悠到一家创业公司(主要是看上这个行业的前景),博主进来主要的工作是java web后台开发和android应用开发。就这样在这家公司熟悉了一个星期的业务之后,开始维护和开发项目了。有一天令我惊讶的事情发生了——我修改代码之后提交到svn,准备发布项目了,我就问我们老大发布的网址是什么?他的回答让我很惊讶,他说没网址(当时不知道他是不是没听懂我的意思),我就问你们平时怎么发布web项目的,他的回答把我雷到了,他说将本地编译的class通过FileZilla替换到服务器中的tomcat容器中相应的项目的对应目录, * -有么有搞错,我第一次遇到有这么干的(我在想多人协作开发怎么搞啊、要是替换了class文件,但是忘记了提交svn,后面出问题了怎么办...),心里想完了,这都是什么技术部啊,这次被坑到这么个公司。我问老大这么 * 们没出过问题么?老大回答以前出过问题,反正项目被他们搞得特别乱,一个项目有N多个备份的版本,而且不知道哪个是正确的,听到这话心塞。没办法为了防止我后面遇到类似的问题,只能自己来搭建jenkins环境啊,自动部署保证svn的代码和tomcat中的项目时刻对应上。好了废话说的有点多,直接上如何部署吧
首先的在linux安装相应的软件咯(jdk、jenkins、tomcat、maven),这些在本博客中就不介绍了,大家自行百度吧,本博客默认所有的软件都已经安装完了
1,在jenkins中配置maven和jdk环境
(1) 进入配置界面--->【系统管理】--->【全局工具配置】
(2) 配置maven的settings.xml
(3)配置jdk
(4)配置maven
上面的步骤完成了就可以直接配置新的项目了
2、创建所要创建的项目
(1)新建maven项目
(2)点击进入项目配置
(3)项目详细配置:General
(4)源码管理,为了全屏能看到,我将浏览器缩小了
(5)构建触发器
(6)build
完成上述步骤,就能够对svn的项目进行编译,并且打包成war包了
接下来如何将生成的war包如何自动复制到tomcat中(tomcat会自动将war包解压成相应的项目)
(7)先配置tomcat/config/tomcat-user.xml中配置一个manager用户,打开tomcat-user.xml
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="manager" password="manager" roles="manager-gui,manager-script"/>
<user username="admin" password="admin" roles="admin-gui,manager-gui"/>
上述配置的admin等下需要使用到
(8)配置
来源:https://blog.csdn.net/hongtaolong/article/details/83451507
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Spring Security 控制授权的方法
![](https://img.aspxhome.com/file/2023/4/58024_0s.png)
IntelliJ IDEA中查看当前类的所有继承关系图
![](https://img.aspxhome.com/file/2023/6/57906_0s.png)
Android Flutter中Offstage组件的使用教程详解
Flutter WillPopScope拦截返回事件原理示例详解
Flutter加载图片流程MultiFrameImageStreamCompleter解析
Java如何实现自定义异常类
SpringBoot如何整合redis实现过期key监听事件
![](https://img.aspxhome.com/file/2023/8/57808_0s.png)
教你如何使用Java输出各种形状
Flutter 状态管理的实现
![](https://img.aspxhome.com/file/2023/0/108330_0s.png)
基于Java文件输入输出流实现文件上传下载功能
![](https://img.aspxhome.com/file/2023/0/58170_0s.png)
Android SharedPreferences数据存储详解
Android 应用签名的两种方法
SpringBoot详细讲解静态资源导入的实现
![](https://img.aspxhome.com/file/2023/8/57728_0s.png)
聊聊Java的switch为什么不支持long
Intellij IDEA + Android SDK + Genymotion Emulator打造最佳Android开发环境
![](https://img.aspxhome.com/file/2023/4/60314_0s.png)
教你怎么用SpringBoot+Mybati-Plus快速搭建代码
![](https://img.aspxhome.com/file/2023/1/58081_0s.png)
详解Java数据库连接JDBC基础知识(操作数据库:增删改查)
![](https://img.aspxhome.com/file/2023/0/58320_0s.png)
Android异步消息机制详解
![](https://img.aspxhome.com/file/2023/0/85960_0s.png)
Thread类interrupt interrupted及isInterrupted区别
![](https://img.aspxhome.com/file/2023/8/57688_0s.png)