jenkins 发布远程服务器并部署项目

安装参考另一个文章

配置maven 和 jdk 和 git

注意jdk的安装目录,是jenkins 安装所在服务器的jdk目录

注意maven的目录  是jenkins 安装所在服务器的maven目录

注意git的目录  是jenkins 安装所在服务器的 git 目录

安装  Publish Over SSH  插件

配置远程服务器

创建项目

创建maven项目

开始配置

General 默认不用修改

源码管理 

注意

构建触发器

构建环境

 Pre Steps

选择 Send files or execute commands over SSH

 目标服务器  Root根目录 创建 x.sh 文件

文件内容  将  111111111111111111  写到 xxx.txt文件里面

#!/bin/bash

echo  "111111111111111111">xxx.txt

测试  手动运行 x.sh

创建  xxx.txt文件  并将  111111111111111111 写入到里面

测试完后 删除xxx.txt

打包之前没有 xxx.txt 文件

编辑 x.sh文件 ,并添加脚本内容

#!/bin/bash

#删除历史数据
rm -rf home

appname=$1
#获取传入的参数
echo "arg:$1"


#获取正在运行的jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`

echo $pid

#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断
        then
                echo "$appname not started"

        else
               kill -9 $pid
                echo "$appname stoping...."

check=`ps -ef | grep -w $pid | grep java`
if [ -z $check ];

        then
                echo "$appname pid:$pid is stop"
        else
                echo "$appname stop failed"

fi


fi

执行   demo 传入的参数,就是用脚本里面的 appname 接受的

执行命令  nohup java -jar /root/home/java/app/ruoyi-admin.jar >mylog.log 2>&1 &

启动后打印日志写入到 mylog.log 这个文件  可以到这个文件去日志

把脚本   ./x.sh ruoyi-admin     配置到 启动前 Pre Steps

Build 构建 

选择 Send files or execute commands over SSH

是项目 去前缀   ruoyi-web

构建后操作

选择 Send build artifacts over SSH

vi start.sh  脚本内容

nohup /usr/java/jdk1.8.0_162/bin/java -jar /root/home/java/app/ruoyi-admin.jar >mylog.log 2>&1 &

 注意分配权限   chmod 777 start.sh

开始构建

查看控制台

构建成功并推送远程服务器 

远程服务器的jar包

查看日志  cat mylog.log   启动成功

访问获取验证码的接口进行测试是否成功

http://192.168.43.202:9090/captchaImage

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不会Git也能玩Github吗?

不会Git也能玩Github吗? 前言使用Github的准备步骤使用一种访问外网资源的方法(这一步才是新手最难的一步)注册账号 创建一个自己的仓库创建完仓库后的界面 搜索你想要的代码类型以搜索坦克大战为例以下载烟花代码为例 总结 前言 说到Github&…

计算机自顶向下 Wireshark labs——DNS

如本文第2.4节所述,域名系统(DNS)将主机名转换为IP地址,在互联网基础设施中发挥着关键作用。在本实验中,我们将仔细研究DNS的客户端。回想一下,客户端在DNS中的角色相对简单—客户端向其本地DNS服务器发送查询,并收到响…

2023年06月CCF-GESP编程能力等级认证Python编程四级真题解析

Python等级认证GESP(1~6级)全部真题・点这里 一、单选题(共15题,共30分) 第1题 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。 A:编辑 B:保存 C:调试 D:编译 答案:D 第2题 排序算法是稳定的(Stable Sorting),就是指排序算…

Android Jetpack Compose之底部导航栏的实现

目录 1.概述2. 效果展示3. 代码实现3.1 定义底部导航栏的tab项3.2 整体页面架构搭建3.3 底部导航栏的实现3.4 所有代码 4.总结 1.概述 写过一段Android jetpack compose 界面的小伙伴应该都用过Compose的脚手架Scaffold,利用它我们可以很快的实现一个现代APP的主流…

Ubuntu使用Docker部署Nginx并结合内网穿透实现公网远程访问

文章目录 1. 安装Docker2. 使用Docker拉取Nginx镜像3. 创建并启动Nginx容器4. 本地连接测试5. 公网远程访问本地Nginx5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 在开发人员的工作中,公网远程访问内网是其必备的技术需求之一。对于…

为什么要进行网站内容监测?内容监测包括哪些方面?(国科云)

随着信息化的普及,网站已经成为企业和组织传递信息、与公众互动的重要平台。网站内容监测对于维护品牌形象,提升用户体验、防止不良信息传播等具有非常重要的作用。本文国科云简单介绍下进行内容监测的必要性以及内容监测包括哪些方面。 为什么要进行网…

基于YOLOv8的足球赛环境下足球目标检测系统(Python源码+Pyqt6界面+数据集)

博主简介 AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富; …

五、医学影像云平台 - 医共体

原创不易,多谢关注!谢谢! 1. 医学大影像设备市场现状 目前影像设备,可以说低端产品同质化越来越严重,利润越来越薄,而高端超高端设备,整体销售额却在增长,利润空间也比低端的要高的…

Netty入门使用

为什么会有Netty? NIO 的类库和 API 繁杂,使用起来比较麻烦,需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。开发工作量和难度都非常大,例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异…

【240121】桂林电子科技大学—调剂信息

桂林电子科技大学 学校层级:双非 调剂专业:081000 信息与通信工程 发布时间:2024.1.21 发布来源:网络发布 背景:欢迎广大08工学专业考生调剂进我的课题组,电子信息专业,也欢迎往届同学调剂…

MongoDB系列:管道操作:聚合阶段操作符(二)

MongoDB系列:管道操作:聚合阶段操作符(二) 聚合阶段操作符介绍 本节只编写了个人认为可能用到的操作符,详细更多的操作符以及使用注意事项请前往MongoDB官网。 $match 过滤匹配数据。 // 插入数据 db.orders.inse…

从欧盟《网络弹性法案》看供应链安全管理

文章目录 前言一、为何欧盟如此关注供应链安全?二、欧盟《网络弹性法案》立法脉络如何?三、制造商的核心义务包括哪些?(一)网络安全基本要求(二)漏洞管理要求(三)报告义务四、小结前言 当前,全球化、数字化、智能化深入推进,以SolarWinds攻击为代表的供应链安全事件…

SpringMVC-组件解析

一、引子 我们在上一篇文章Spring MVC-基本概念中,为读者解释了如何使用SpringMVC框架,将承接客户端请求的工作从原生的Servlet转移到我们熟知的Controller中。那么我们不禁会好奇,SpringMVC框架到底做了什么,是怎么把请求分发给…

sqlserver alwayson部署文档手册

1、ALWAYSON概述 详细介绍参照官网详细文档,我就不在这里赘述了: https://learn.microsoft.com/zh-cn/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?viewsql-server-ver16 下图显示的是一个包含一个…

aspose-words基础功能演示

我们在Aspose.Words中使用术语“渲染”来描述将文档转换为文件格式或分页或具有页面概念的介质的过程。我们正在讨论将文档呈现为页面。下图显示了 Aspose.Words 中的渲染情况。 Aspose.Words 的渲染功能使您能够执行以下操作: 将文档或选定页面转换为 PDF、XPS、HTML、XAML、…

过年手机推荐

iPhone : 11 13 14pro/ 15pro/(5000) 遥遥领先 :ma&…

冀蒙辽三地共同推进北斗卫星导航定位基准站资源共享

冀蒙辽三地共同推进北斗卫星导航定位基准站资源共享 近期,冀蒙辽三地共同举办了“北斗卫星导航定位基准站资源共享推进会”,旨在推动北斗卫星导航定位系统的规模化应用,加强区域北斗卫星导航定位基准站网络的协同服务能力,为经济…

聚簇索引的效率明显要低于非聚簇索引,为什么还需要聚簇索引?

每次使用辅助索引检索都要经过两次B树查找,看上去聚簇索引的效率明显要低于非聚簇索引,这不是多此一举吗?聚簇索引的优势在哪? 由于行数据和聚簇索引的叶子节点存储在一起,同一页中会有多条行数据,访问同一…

C语言中的函数指针、指针函数与函数回调

在C语言中,指针是一个核心概念,它提供了直接访问内存地址的能力。指针不仅可以指向变量,还可以指向函数,这为编程带来了极大的灵活性。本文将通过示例代码详细介绍C语言中的函数指针、指针函数以及函数回调。 1. 指针函数 指针函…

实际开发中redisTemplate.execute() 方法与 template.opsForValue() 的选择

前言 最近在复习自己的技术社区的源码时候发现了一个之前自己忽略的一个有趣的地方: 就是在项目的Redis操作封装类RedisClient中(包含封装了redis的几种数据结构的使用姿势)对于redisTemplate.execute() 方法与 template.opsForValue() 的选…