SpringBoot项目打成war包,部署到远端Linux服务器
文章目录
前言
在使用SpringBoot打jar包,内置的Tomcat部署到Linux时出现了一些问题,于是产生了打成war包,不让内置的Tomcat生效,让线上的Tomcat运行程序的想法。
前提:你的Linux的jdk版本和本地的jdk版本必须一致,打的war包才能生效
一、修改pom.xml文件
1.改最开始的默认打包方式
<groupId>com.daji</groupId>
<artifactId>dajiblog_springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>dajiblog_springboot</name>
2.排除掉SpringBoot默认集成的tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion><!--排除掉默认的tomcat-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3. 引入新的依赖
<!-- 这个依赖让你能够在程序入口类:xxxAppAplication中直接执行main方法启动tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- 但是这里一定要设置为provided -->
<scope>provided</scope>
</dependency>
4.修改你打war包的名称
<build>
<finalName>你war包的名称</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
二、修改主启动类,继承SpringBootServletInitializer
@SpringBootApplication
public class DajiblogSpringbootApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DajiblogSpringbootApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
//下面的DajiblogSpringbootApplication.class就是你自己的启动类
return builder.sources(DajiblogSpringbootApplication.class);
}
}
三、在Maven中进行打包

这样就可以在target目录下得到一个war包