zoukankan      html  css  js  c++  java
  • spring boot 项目部署方式(jar & war)

    应该可以通过其他方式部署,由于本身见识有限,暂时总结出两种部署方式。欢迎评论告知更多方式,相互交流。

    方式一 jar包部署

    1. 请确保目标服务器有java环境,执行用户配置好java目录

    2. 检查pom.xml配置文件中是否有

      <packaging>jar</packaging>
      

      若没有,则在project内添加(与项目的artifactId、parent 和 groupId 同级)

    3. 编译+运行(在idea中直接运行项目)完成后可以在target目录中找到目标jar包

    4. 将 jar 上传到服务器 或 运行目录中

    5. 通过命令运行jar包

      # 若需要窗口内运行请执行
      java -jar 目标jar包名称.jar
      # 若需要一直后台运行(包括此次会话连接断开后,即关闭terminal窗口后)
      nohup java -jar 目标jar包名称.jar &
      

      在命令后面加 & 意味着需要将其后台运行。若单纯后台运行,在此次会话连接断开后,会停止此次会话期间后台的任务。

      nohup 为不挂断运行,即使收到回话连接结束的命令也不会影响命令执行(不是后台执行)。

      为了实现一直启用服务的功能,因此两个命令都需要使用

    方式二 war包部署

    1. 请确保目标服务器有java环境,执行用户配置好java目录,并有tomcat

    2. 检查pom.xml配置文件中是否有

      <packaging>war</packaging>
      

      若没有,则在project内添加(与项目的artifactId、parent 和 groupId 同级)

    3. 修改springBoot的主方法

      @SpringBootApplication
      public class MainApplication extends SpringBootServletInitializer {
        // 继承SpringBootServletInitializer类,重写父类的configure方法
      	@Override
      	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
      		return builder.sources(MainApplication.class);
      	}
      
      	public static void main(String[] args) {
              SpringApplication.run(MainApplication.class, args);
      	}
      }
      
    4. 编译+运行(在idea中直接运行项目)完成后可以在target目录中找到目标war包

    5. 将 war 上传到服务器或本地 的 搭载运行的tomcat的webApp目录下

    6. 启动tomcat bin/startup.sh

    附注:结束运行jar的方式

    • 若使用窗口内运行(即运行jar包的第一种方式)

      1. 直接关闭窗口或在窗口内执行 ctrl + c 即可
      2. 参照一直运行的关闭方法⬇️
    • 若需要一直后台运行(运行jar包第二种方式,或运行war包)

      1. 使用 ps/lsof 查询进程号(pid)

        # 使用ps查询pid
        ps -ef | grep 关键字或文件名
        # 使用lsof查看端口占用(将8080替换为jar占用的端口)
        lsof -i :8080
        
      2. kill -9 进程号(pid) ,如 kill -9 4096

    • 关闭tomcat

      • 直接运行 bin/shutdown.sh
      • 使用上述的ps / lsof方法
  • 相关阅读:
    微软软件下载
    FTP主动连接与被动连接
    Linux下grep显示前后几行信息
    cacti 安装过程中“ERROR: 您的MySQL TimeZone 数据库未被填充. 请在继续之前填入此数据库.”
    Cacti安装详细步骤
    Linux 踢掉其他终端用户
    迁移设备存储报的错误及解决方式
    sql_mode :(STRICT_TRANS_TABLES与STRICT_ALL_TABLES 区别)
    Nginx日志按日期切割详解(按天切割)
    git pull冲突:commit your changes or stash them before you can merge.
  • 原文地址:https://www.cnblogs.com/wgh0807/p/13292354.html
Copyright © 2011-2022 走看看