在服务器上部署SpringBoot项目jar包

以下是在服务器上部署Spring Boot项目jar包的步骤:

  1. 打包项目

    • 使用IDEA或者命令行工具(如Maven或Gradle)将Spring Boot项目打包为一个可执行的jar文件。
    • 如果使用Maven,可以在项目的根目录下运行以下命令来打包项目:
      mvn clean package -DskipTests
      
      这个命令会清除之前的构建产物,然后打包项目,并跳过测试。
  2. 将jar文件上传到服务器

    • 使用FTP、SCP、SFTP等工具将生成的jar文件上传到服务器的指定目录,例如 /opt/myapp
  3. 创建启动脚本(可选):

    • 可以创建一个shell脚本来启动和停止你的应用。以下是一个简单的示例:
      #!/bin/bashAPP_NAME=myapp
      JAR_FILE=/opt/myapp/myapp.jar
      PID_FILE=/var/run/$APP_NAME.pid
      LOG_FILE=/var/log/$APP_NAME.logstart() {if [ -f $PID_FILE ]; thenecho "Application is already running..."exit 1fijava -jar $JAR_FILE > $LOG_FILE 2>&1 &echo $! > $PID_FILEecho "Application started."
      }stop() {if [ ! -f $PID_FILE ]; thenecho "Application is not running..."exit 1fiPID=$(cat $PID_FILE)kill $PIDrm $PID_FILEecho "Application stopped."
      }case "$1" instart)start;;stop)stop;;restart)stopstart;;*)echo "Usage: $0 {start|stop|restart}"exit 1;;
      esac
      
      将这个脚本保存为 myapp.sh,并将其放在一个方便的位置,如 /etc/init.d/
  4. 赋予脚本执行权限

    • 在服务器上,使用 chmod 命令给启动脚本添加执行权限:
      chmod +x /etc/init.d/myapp.sh
      
  5. 配置系统服务(可选):

    • 如果你希望在系统启动时自动启动你的应用,或者使用 service 命令来管理应用,可以将启动脚本添加为系统服务。以下是在Ubuntu系统中使用Systemd的示例:
      • 创建一个systemd服务单元文件 /etc/systemd/system/myapp.service,内容如下:
        [Unit]
        Description=My Spring Boot Application
        After=network.target[Service]
        ExecStart=/etc/init.d/myapp.sh start
        ExecStop=/etc/init.d/myapp.sh stop
        User=<your_user>
        Restart=always[Install]
        WantedBy=multi-user.target
        
      • 更新systemd服务列表:
        systemctl daemon-reload
        
      • 启动服务并设置开机启动:
        systemctl start myapp
        systemctl enable myapp
        
  6. 启动应用

    • 使用以下命令启动你的应用:
      /etc/init.d/myapp.sh start
      
    • 或者,如果已经配置了系统服务,可以使用 systemctl 命令:
      systemctl start myapp
      
  7. 验证应用是否运行

    • 可以通过访问应用的URL或者查看日志文件 /var/log/myapp.log 来确认应用是否成功启动。

以上就是将Spring Boot项目jar包部署到服务器上的基本步骤。根据你的具体需求和服务器环境,可能需要进行一些调整。

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

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

相关文章

tampermonkey:Tampermonkey受欢迎的用户脚本管理器油猴

Tampermonkey for Mac是一款用户脚本管理器&#xff0c;主要用于在网页上运行自定义的JavaScript代码&#xff0c;以增强网站的功能和外观。它支持在各种浏览器中使用&#xff0c;包括Chrome、Firefox和Safari等主要浏览器。 以下是Tampermonkey for Mac软件的主要特点&#x…

一款C++编写的数据可视化库Matplot++

它是基于著名的 Matplotlib 库&#xff08;Python 中广泛使用的绘图库&#xff09;构建的&#xff0c;旨在提供类似于 Matplotlib 的功能&#xff0c;但专门为 C 设计。Matplot 支持多种图表类型&#xff0c;包括线图、散点图、条形图、直方图、误差线图等&#xff0c;使数据可…

RocketMQ 入门:MQ 基础概念、集群搭建与高可用配置,消息示例详解

RocketMQ 入门 视频地址&#xff1a; 千锋教育RocketMQ全套视频教程&#xff0c;快速掌握MQ消息中间件 什么是 MQ &#xff1f; Message Queue&#xff08;消息 队列&#xff09;&#xff0c;从字面上理解&#xff1a;首先它是一个队列。FIFO 先进先出的数据结构 —— 队列…

LeetCode179最大数(相关话题:自定义排序器)

题目描述 给定一组非负整数 nums&#xff0c;重新排列每个数的顺序&#xff08;每个数不可拆分&#xff09;使之组成一个最大的整数。 注意&#xff1a;输出结果可能非常大&#xff0c;所以你需要返回一个字符串而不是整数。 示例 1&#xff1a; 输入nums [10,2] 输出&…

postgresql|数据库|LVM快照热备冷恢复数据库的思考

一&#xff0c; LVM快照备份的意义 数据库备份一直是数据库运维工作中的重点&#xff0c;一个完备的备份不仅仅是仅有后悔药的功能&#xff0c;还可能有迁移数据库的作用。 那么&#xff0c;数据库备份系统我们需要的&#xff0c;也就是看重的是四个点&#xff0c;甚至更多的…

【LeetCode刷题笔记】前缀树

208. 实现 Trie (前缀树) 解题思路: 1. 前缀树 Map实现 ,使用一个 Map<Character, Trie> 来存储 每个字符 对应的 若干子节点 ,在构造函数中初始化 根节点 root 为 当前对象实例 , 在 插入

centos 安装git

在 CentOS 上安装 Git 的过程相对简单。Git 是一个版本控制系统&#xff0c;广泛用于软件开发和其他版本控制任务。以下是在 CentOS 上安装 Git 的步骤&#xff1a; 1. 打开终端 首先&#xff0c;打开您的 CentOS 系统上的终端。 2. 安装 Git 使用以下命令安装 Git&#xf…

java的XWPFDocument3.17版本学习

maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version> </dependency> 测试类&#xff1a; import org.apache.poi.openxml4j.exceptions.InvalidFormatExcep…

Python+Playwright自动化测试--playwright处理浏览器多窗口切换

1.简介 浏览器多窗口的切换问题相比大家不会陌生吧&#xff0c;之前小编在javaselenium系列文章中就有介绍过。大致步骤就是&#xff1a;使用selenium进行浏览器的多个窗口切换测试&#xff0c;如果我们打开了多个网页&#xff0c;进行网页切换时&#xff0c;我们需要先获取各…

R软件包ConsensusCluster进行共识聚类(Consensus Clustering)

从下面论文看到这个方法&#xff1a; Wang, Xin, et al. "Deep learning using bulk RNA-seq data expands cell landscape identification in tumor microenvironment." Oncoimmunology 11.1 (2022): 2043662. 这篇论文基于 AI 方法对 bulk RNA-seq 数据识别肿瘤微环…

DAY14

问题一&#xff1a;面向对象与面向过程的区别于联系 1.区别 面向过程的最小单位是函数&#xff0c;强调功能行为&#xff0c;考虑的是怎么做 面向对象的最小单位是类&#xff0c;把功能封装到了对象里面&#xff0c;强调的是有功能的对象&#xff0c;考虑的是谁来做&#xf…

【平面几何】三角形的内心与内切圆(性质归纳)(下)

【平面几何】三角形的内心与内切圆&#xff08;性质归纳&#xff09;&#xff08;上&#xff09; 性质21. △ A B C \triangle ABC △ABC 的内切圆 I I I 分别切 B C BC BC, A C AC AC, A B AB AB 于 D D D, E E E, F F F. 设 B C BC BC 所对中位线是 K L KL KL, 则…

10、基于LunarLander登陆器的Dueling DDQN强化学习(含PYTHON工程)

10、基于LunarLander登陆器的Dueling DDQN强化学习&#xff08;含PYTHON工程&#xff09; LunarLander复现&#xff1a; 07、基于LunarLander登陆器的DQN强化学习案例&#xff08;含PYTHON工程&#xff09; 08、基于LunarLander登陆器的DDQN强化学习&#xff08;含PYTHON工程…

【Com通信】什么是Signal Group及为什么要用Signal Group

目录 前言 正文 1.Signal Group概念介绍 1.1 Initialization 1.2 Transmission 1.3 Reception 1.4 Notifications

【动态规划算法(dp算法)】之背包问题

文章目录 背包问题动规五部曲一、0-1背包问题 &#xff1a;限制物品不可重复 (要么不选 要么选一个)二、完全背包问题&#xff1a;不限制重复&#xff08;要么不选 要么可以多选&#xff09;&#xff08;完全背包可以转化为0-1背包问题&#xff09; 动态规划&#xff1a;01背包…

使用OpenCV4实现工业缺陷检测的六种方法

目录 1 机器视觉2 缺陷检测3 工业上常见缺陷检测方法 1 机器视觉 机器视觉是使用各种工业相机&#xff0c;结合传感器跟电气信号实现替代传统人工&#xff0c;完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成&#xff0c;…

【平面几何】三角形的内心与内切圆(性质归纳)(上)

【平面几何】三角形的内心与内切圆&#xff08;性质归纳&#xff09; 注记: 三角形内切圆半径记为 r r r, 外接圆半径记为 R R R, 顶点 A A A 点所对的旁切圆半径记为 r A r_A rA​, 以此类推. 性质1-1. △ A B C \triangle ABC △ABC 的内切圆 I I I 分别切 B C BC B…

撤回聊天室消息, 再次加入聊天室, 仍然显示已经被撤销的消息

用户的聊天如果开启了拉取特定消息功能, 需要在后台做一下修改: 把聊天室 “加入聊天室获取指定消息类型” 加上 RC:RcCmd 消息类型, 这样就可以隐藏元消息 详情查看&#xff1a;融云-为用户提供IM即时通讯和实时音视频通信云服务

企业数据治理:(1)概述

目录 确定数据治理的规范与标准 设立与数据治理规范和标准相匹配的组织架构 明确数据治理的范围 制定切实可行的治理目标与实施计划 数据治理是企业IT系统建设当中的重要组成部分&#xff0c;是一种综合性的方法和实践&#xff0c;目的在确保数据的完整性、准确性和一致性。…

Redis Stream消息队列之基本语法与使用方式

前言 本文的主角是Redis Stream&#xff0c;它是Redis5.0版本新增加的数据结构&#xff0c;主要用于消息队列&#xff0c;提供了消息的持久化和主备复制功能&#xff0c;可以让任何客户端访问任何时刻的数据&#xff0c;并且能记住每一个客户端的访问位置&#xff0c;还能保证…