Python工程师Java之路(t)使用Shell脚本部署SpringBoot

news2024/11/17 3:40:25

文章目录

  • 1、概述
  • 2、在服务器上安装Maven
  • 2、在服务器上安装Git
  • 3、Shell脚本
  • 4、SpringBoot部署测试

1、概述

push
pull
编译 打包 重启
开发环境
Git仓库
服务器
进程
  1. 代码从开发环境上传到Git仓库
  2. 服务器从Git仓库拉取代码
  3. 在服务器上进行编译、打包、重启

2、在服务器上安装Maven

2.1、下载

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

2.2、解压

tar -zxf apache-maven-3.5.4-bin.tar.gz
mv apache-maven-3.5.4 /opt/module/
/opt/module/apache-maven-3.5.4/bin/mvn -version

2.3、修改配置

vim /opt/module/apache-maven-3.5.4/conf/settings.xml
<!-- 本地仓库存放路径 -->
<localRepository>/opt/module/mavenRepository</localRepository>
<!-- 配置国内镜像,使下载更快 -->
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

2、在服务器上安装Git

2.1、安装git

yum install -y git

2.2、创建仓库地址的目录

mkdir /opt/module/git_repository
chown -R hjw:hjw /opt/module/git_repository

2.3、创建代码仓库(名为hello

git init --bare /opt/module/git_repository/hello

2.4、免密配置

https://blog.csdn.net/Yellow_python/article/details/127570500

3、Shell脚本

cd /opt/module/projects
touch SpringBootRestart.sh
chmod 777 SpringBootRestart.sh
vim SpringBootRestart.sh
#!/bin/sh

# artifactId
ARTIFACT=hello
# 版本
VERSION=-0.0.1-SNAPSHOT
# Maven路径
MVN=/opt/module/apache-maven-3.5.4/bin/mvn
# 代码位置
LOC=/opt/module/projects/$ARTIFACT
# jar名
JAR=${ARTIFACT}${VERSION}.jar

pid=`ps -ef|grep ${JAR}|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${pid} ]; then
    echo '停止进程'
    kill -15 $pid
fi
sleep 3
pid=`ps -ef|grep ${JAR}|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${pid} ]; then
    echo '杀进程'
    kill -9 $pid
else
    echo '停止进程成功'
fi

echo '从Git仓库拉取最新代码'
cd $LOC
git pull

echo '打包'
output=`$MVN clean package -Dmaven.test.skip=true`

echo '启动项目'
cd target
nohup java -jar ${JAR} &> ${ARTIFACT}.log &

# 查看进程状态
sleep 2
echo `ps -ef|grep ${JAR}|grep -v grep`

4、SpringBoot部署测试

4.1、使用IDEA创建工程(下面2种方法)

方法1:先创建SpringBoot工程,再去关联Git仓库

方法2:直接创建关联Git仓库的工程

4.2、服务器从仓库下载代码

mkdir -p /opt/module/projects
cd /opt/module/projects
git clone 用户名@主机地址:/opt/module/git_repository/hello

4.3、执行脚本

/opt/module/projects/SpringBootRestart.sh

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

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

相关文章

【中级软件设计师】—数据库系统考点总结篇(三)

【中级软件设计师】—数据库系统考点总结篇&#xff08;三&#xff09; 课程大纲与考点分布 1 数据库系统的体系结构 分布式数据库的透明性 1.1 三级模式—两级映射 1.2 数据库的设计过程 1.3 E-R模型 首先每个实体要单独转成一个关系模式&#xff0c;总共三个实体三个关系模式…

ubuntu20.04安装Intel核显QSV编译FFmpeg支持QSV硬件加速

Intel Video And Audio For Linux&#xff1a; libva: Libva is an implementation for VA-APIlibva下可以接入各种driver&#xff0c;以支持不同的设备 VA-API(Video Acceleration API): is an open-source library and API specification(规格说明&#xff0c;技术参数)libv…

现在的年轻人真会玩,开发界面都这么时尚,不服老都不行了

文章目录一、你还在用传统的开发界面吗二、年轻人的界面1.动漫型2.偶像型3.提神型三、更换背景的操作第一步第二步第三步一、你还在用传统的开发界面吗 不比不知道&#xff0c;一比吓一跳&#xff0c;都2023年了&#xff0c;你还在用Pycharm的默认背景写代码吗&#xff1f;已经…

深度学习训练营_第J5周_DenseNet+ SE-Net实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 本周进行SE模块在DenseNet上的改进实验&#xff0c;之后将改进思路迁移到YOLOv5模型上测试 首先是学习SE模块 SE模块&#xff1a;Squeeze-an…

Nuxt - 超详细 Element 组件库主题颜色进行 “统一全局“ 替换,将默认的蓝色主题色更换为其他自定义颜色(保姆级教程,简易且标准全局替换主题色)

前言 如果需要纯 Vue 版本,请访问:这篇文章。 网上的文章可以用乱七八糟来形容了,各种奇葩的引入、安装各种东西,本文提供简洁且符合官方标准的解决方案。 Element UI 默认主题色是蓝色,很可能与我们设计稿不一致(比如设计稿是绿色主题), 这时候问题就出现了,难不成每…

Concept HDL学习资料汇总

本篇博文目录:一.concept HDL相关概念知识1. Concept HDL2.Concept HDL与Cadence的区别3.Concept HDL与Cadence CIS之间的转换问题二.Cadence软件安装1.Cadence 16.6安装2.Cadence 17.x安装三.concept HDL视频学习资料四.concept HDL博文学习资料五.concept HDL书籍/文档资料一…

【报错】Aanaconda环境下配置pytorch时报错 (Solved)

Aanaconda环境下配置pytorch时报错: 在命令行输入conda install pytorch torchvision torchaudio cpuonly -c pytorch安装pytorch时产生报错&#xff0c;报错信息如下&#xff1a; EnvironmentLocationNotFound: Not a conda environment: C:\Users\绀句細浜篭.conda\envs\py…

vite+vue3基础

vite创建项目指令 npm create vitelatest . 项目创建选择vue。 创建完成之后安装依赖 npm i || cnpm ivite项目下 引入文件需要配置路径 //如果文件路径 .///如果文件层 较深 配置 “/***”“../../”配置vite中的 路径&#xff08;js版本支持node全局变量 ts版本不支持 types…

4款【新概念APP】对比+免费下载

4款【新概念APP】对比免费下载4款【新概念APP】对比免费下载新概念英语咖&#xff08;体积小、无广告、全免费、不能倍速播放&#xff09;新概念英语全册&#xff08;免费&#xff0c;但强制广告&#xff0c;否则不能播放音频。可以倍速&#xff09;新概念英语全四册&#xff0…

SpringBoot入门简介

SpringBoot简介 1.什么是SpringBoot SpringBoot基于Spring4.0设计&#xff0c;不仅继承了Spring框架原有的优秀特性&#xff0c;而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突&#xff0c;以及引用…

Android中的全量更新、增量更新以及热更新

在客户端开发过程中&#xff0c;我们可能会遇到这样一种需求&#xff1a;点击某个按钮弹出一个弹窗&#xff0c;提示我们可以更新到apk的某个版本&#xff0c;或者我们可以通过服务端接口进行强制更新。在这种需求中&#xff0c;我们是不需要通过应用商店来更新我们的apk的&…

【Hadoop/Java】基于HDFS的Java Web网络云盘

【Hadoop/Java】基于HDFS的Java Web网络云盘 本人BNUZ大学生萌新&#xff0c;水平不足&#xff0c;还请各位多多指教&#xff01; 实验目的 熟悉HDFS Java API的使用&#xff1b;能使用HDFS Java API编写应用程序 实验要求 云盘系统通过互联网为企业和个人提供信息的储存、…

前后端部署+nginx配置

文章目录概要1、脚手架安装2、项目打包部署3、配置nginxEND概要 内容主要包括部署前端项目&#xff0c;nginx安装配置&#xff0c;以及后端项目的打包 1、脚手架安装 vue init webpack 项目运行&#xff08;默认端口8080&#xff09; npm run dev 如果前后端分离项目&…

使用Vue+el-form+form-validate实现管理端登录接口联调前准备工作实战

前言 这是《Vue + SpringBoot前后端分离项目实战》专栏的第7篇博客,感谢你能从成千上万篇博客中打开这一篇,和我一起学习前端开发实战知识,让我们一起开始吧。 目录 前言 一、上节回顾和本节介绍 1. 上节回顾

【可视化开发】echarts配置项——修改tooltip默认样式

修改tooltip默认样式 在可视化开发中我们通常会遇到修改tooltip样式问题&#xff0c;下面分享给大家代码片段和最终呈现效果 tooltip: {//鼠标悬浮框的提示文字trigger: "axis",axisPointer: {// 坐标轴指示器配置项。type: "none", // line 直线指示器 …

Vue3.0ElementPlus<input输入框自动获取焦点>

文章目录前言一、input-focus事件&#xff1f;二、使用步骤1.给input 设置ref 属性2.引入ref和nextTick3.在dialog打开事件中触发前言 记录一下自己最近开发vue3.0的小小问题~~ 最近在做项目时&#xff0c;dialog弹框事件需定位input焦点&#xff0c;方便用户可直接输入。原理…

【vue3】组合式API之setup()介绍与reactive()函数的使用

>&#x1f609;博主&#xff1a;初映CY的前说(前端领域) ,&#x1f4d2;本文核心&#xff1a;setup()概念、 reactive()的使用 【前言】vue3作为vue2的升级版&#xff0c;有着很多的新特性&#xff0c;其中就包括了组合式API&#xff0c;也就是是 Composition API。学习组合…

vue + gojs 实现拖拽 流程图

一、流程图效果 最近一段时间在研究go.js,它是一款前端开发画流程图的一个插件&#xff0c;也是一个难点&#xff0c;要说为什么是难点&#xff0c;首先&#xff0c;它是依赖画布canvas知识开发。其次&#xff0c;要依赖于内部API开发需求&#xff0c;开发项目需求的时候就要花…

js逆向爬取某音乐网站某歌手的歌曲

js逆向爬取某音乐网站某歌手的歌曲一、分析网站1、案例介绍2、寻找列表页Ajax入口&#xff08;1&#xff09;页面展示图。&#xff08;2&#xff09;寻找部分歌曲信息Ajax的token。&#xff08;3&#xff09;寻找歌曲链接&#xff08;4&#xff09;获取歌曲名称和id信息3、寻找…

vue-plugin-hiprint vue hiprint vue使用hiprint打印控件VUE HiPrint HiPrint简单使用

vue-plugin-hiprint vue hiprint vue使用hiprint打印控件VUE HiPrint HiPrint简单使用安装相关依赖安装 vue-plugin-hiprintJQuery安装 打印客户端引入依赖打印 html 内容 - 简单使用根据模版打印 - 简单使用以下内容 和上面demo 没关系 &#xff01;&#xff01;&#xff01;&…