• 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方法
  • 相关阅读:
    [CF1166E] The LCMs Must be Large
    AtCoder Beginner Contest 161
    [CF1168B] Good Triple
    [CF1172B] Nauuo and Circle
    [CF1185E] Polycarp and Snakes
    [CF1187E] Tree Painting
    Codeforces Round #631 (Div. 2)
    [CF1200E] Compress Words
    Thinkphp绕过宝塔getshell
    如何成为一个漏洞赏金猎人
  • 原文地址:https://www.cnblogs.com/wgh0807/p/13292354.html
Copyright © 2020-2023  润新知