SpringBoot之打包成war包部署到tomcat

时间:2022-02-18 09:34:31

SpringBoot之打包成war包部署到tomcat

小编花费了九牛二虎之力,总算把SpringBoot项目成功打包成war包,其中不免遇到了一些小状况,特写此文,以便其他小伙伴们不要走我的老路,避免重复这些小错误:

  • 配置文件(本地部署)
  • 启动类(war包部署)
  • war包部署pom.xml添加
  • maven命令生成war包(跳过测试)
  • war部署到tomcat

  • 配置文件(本地部署)
    这里呢,是我们伟大的springboot的配置文件需要做的一些配置,即使似乎跟打包没有半毛钱关系,但是小编还是在这里强调一下,大多数情况下,maven是默认进行项目测试的,请确保在打包成war前,数据库配置正确,以免入坑。
user = name
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/mj

spring.datasource.username = root

spring.datasource.password = 123456

spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto = update
spring.jpa.show-sql = true
  • 启动类(war包部署)
    接下来呢,要想springboot项目知道我们的意图,so,我们要引导我们的项目,告诉他我们要打包成war包,在此我们需要继承SpringBootServletInitializer类重写他的configure方法。告诉他我们要怎样启动它,生成war包需要的相关文件
package com.job;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
@ServletComponentScan
public class JobManagementApplication extends SpringBootServletInitializer{

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(JobManagementApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(JobManagementApplication.class, args);
}
}
  • war包部署pom.xml添加
    接下来,我们要为maven的pom.xml添加相关的依赖配置:
    首先要把<packaging>jar</packaging>改为以下
<packaging>war</packaging>

其次还有添加以下依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
  • maven命令生成war包(跳过测试)
mvn clean package  -Dmaven.test.skip=true
  • war部署到tomcat
    重命名生成的war包为ROOT.war,部署到tomcat的webapps文件目录下(确保webapps目录下没有其他ROOT文件夹)
    tips:云服务器上部署时确保连接数据库配置正确,否则项目跑不起来。
如有疑问,可以留言,谢谢