Jenkins+Git+Maven自动化部署配置详解
作者:别团等shy哥发育 发布时间:2022-05-20 22:24:43
基本思路
服务器配置如下:
192.168.159.50 gitlab服务器(Gitlab,内存至少5个G,要不根本跑不动)
192.168.159.51 jenkins服务器(Jenkins-Server+Maven+JDK)
192.168.158.52 测试服务器(JDK)
1、jenkins安装maven依赖
2、git安装
git安装
这里先在jenkins这台机器上装个git
yum install -y git
3、Jenkins中新建任务
新建一个任务,这里选择构建一个maven项目
项目名称写first
3.1 git配置
输入项目地址(就是我们在自己gitlab服务器上的项目地址)
选择分支,看你的是master分支还是main分支
3.2 maven配置
这里写你jenkins服务器上的maven安装位置:我的是/usr/local/maven
3.3 pom.xml配置
代码仓库中pom.xml的位置
这里还要看你pom.xml文件的位置,如果不是直接暴露在仓库最外层,比如在demo目录下,那就要写成demo/pom.xml
3.4 build
点击构建按钮
查看控制台输出:
看到如下页面说明打包完成了。
Dashboard这里也可以看到成功了,并且显示出了曾经成功和失败的时间
去jenkins服务器上面查看是否打包成功,如下,可以看到target目录和jar包说明打包成功了
运行jar包测试一下
java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8888
这个只是个测试项目,只有一个负责测试的Controller,结构大概如下
测试下简单的业务类,访问:http://192.168.159.51:8888/index/hello
简单业务类的测试也没有任何的问题。这样一个简单的自动化部署就完成了,但是我们还想自动把jar包传到测试服务器(192.168.159.52)上面执行,而不是我们去手动执行jar包。
4、自动化发布到测试服务器并自动执行(Test-server)
4.1 安装Publish Over SSH插件
先在jenkins服务器上安装个插件:Publish Over SSH
选中,点击Install without restart
4.2 修改Post Steps配置
1、由于还没有添加测试服务器,先去System Configuration中配置
2、在Configure System菜单里 往下拉,找到Publish over SSH
3、添加一台目标服务器:这里我的测试服务器IP是192.168.159.52
4、测试下链接是否正常,左下角显示Success说明连接没问题
5、再去看Post Steps中,选择Send files or execute commands over SSH
这里就可以看到我们刚才添加的testserver了,如下图所示。
6、发布到远程服务器的配置
这样让远程测试服务器上的jar包以后台进程方式启动
4.3 执行构建
查看控制台输出
查看jar包是否传到了测试服务器上,如下图。
查看测试服务器是否执行了启动jar包的脚本(脚本就是我们在Post Steps配置的那一行)
jps
可以看到,jar包已经被执行了。
验证业务类是否可访问,192.168.159.52:8888/index/hello
来源:https://blog.csdn.net/qq_43753724/article/details/128605182


猜你喜欢
- 本文实例为大家分享了Java利用同步块synchronized()保证并发安全的具体代码,供大家参考,具体内容如下package day10
- 1.根据入参带分页参数进行sql查询分页 Criteria criteria = n
- 昨天写了一篇Redis布隆过滤器相关的命令的文章,今天来说一说springboot中如何简单在代码中使用布隆过滤器吧。目前市面上也有好几种实
- 前言单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的。单元测试不
- 方法一、利用控件或窗体的Paint事件中的PainEventArgs在窗体或控件的Paint事件中接收对图形对象的引用,作为PaintEve
- 1、直接使用getWindow().getDecorView().getRootView()直接使用getWindow().getDecor
- cc3利用链如下:TrAXFilter(Templates templates) TemplatesImpl-&a
- 本文实例讲述了C#微信公众号开发之接收事件推送与消息排重的方法。分享给大家供大家参考。具体分析如下:微信服务器在5秒内收不到响应会断掉连接,
- 本文主要介绍了java8 stream自定义分组求和并排序的实现,分享给大家,具体如下: public static void
- 一、读取系统配置文件application.yaml1、application.yaml配置文件中增加一下测试配置testdata: &nb
- 了解JVM内存结构的目的在Java的开发过程中,因为有JVM自动内存管理机制,不再需要像在C、C++开发那样手动释放对象的内存空间,不容易出
- 数组的定义数组本质上就是让我们能 " 批量 " 创建相同类型的变量。数组的三种语法格式1、 数据类型 [] 数组名称 =
- java语言是一种面向对象的程序设计语言吗java语言是面向对象的程序设计语言支持部分或绝大部分面向对象特性(类和实例、封装性、继承、多态)
- 场景随着移动支付的兴起,在我们的app'中,会经常有集成支付的需求.这时候一般都会采用微信和支付宝的sdk 来集成(一)支付宝支付在
- 大家好,因为近期做需求中遇到了文件上传这个东西,而且我这个还是跨服务去传输文件的所以我这边使用了httpclient和RestTemplat
- 大顶堆每个结点的值都大于或等于其左右孩子结点的值小顶堆每个结点的值都小于或等于其左右孩子结点的值对比图实现代码public class He
- 前言Google终于发布了一个和SQLite相关的库了。之前一直都是在SQLite、XUtils、greenDao、Realm这些数据库之间
- 最近因为fastjson安全漏洞,升级jar包时,踩了一些坑。新版本FastJsonHttpMessageConverter初始化,默认设置
- 1. 起源KV项目下载底层重构升级决定采用独立进程进行Media下载处理,以能做到模块复用之目的,因此涉及到了独立进程间的数据传递问题。目前
- (1)实际应用BeanUtils.copyProperties(赋值目标对象,模板源对象);我们都知道当有两个对象AB,属性名称一样的情况下