Springboot项目打包war配置详解
1. 排除内置tomcat依赖 2. 添加servlet依赖 3. 修改打包方式 4. 修改主启动类 5. 完整pom.xml 6. 效果图
1. 排除内置tomcat依赖
< dependency>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-starter-web</ artifactId>
< exclusions>
< exclusion>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-starter-tomcat</ artifactId>
</ exclusion>
</ exclusions>
</ dependency>
2. 添加servlet依赖
< dependency>
< groupId> jakarta.servlet</ groupId>
< artifactId> jakarta.servlet-api</ artifactId>
</ dependency>
3. 修改打包方式
< packaging> war</ packaging>
4. 修改主启动类
@SpringBootApplication
public class Springboot3Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Springboot3Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Springboot3Application.class);
}
}
5. 完整pom.xml
<?xml version="1.0" encoding="UTF-8"?>
< project xmlns = " http://maven.apache.org/POM/4.0.0" xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= " http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" >
< modelVersion> 4.0.0</ modelVersion>
< parent>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-starter-parent</ artifactId>
< version> 3.1.2</ version>
< relativePath/>
</ parent>
< groupId> com.zlm</ groupId>
< artifactId> springboot3</ artifactId>
< version> 0.0.1-SNAPSHOT</ version>
< name> springboot3</ name>
< description> springboot3</ description>
< packaging> war</ packaging>
< properties>
< java.version> 17</ java.version>
</ properties>
< dependencies>
< dependency>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-starter-web</ artifactId>
< exclusions>
< exclusion>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-starter-tomcat</ artifactId>
</ exclusion>
</ exclusions>
</ dependency>
< dependency>
< groupId> jakarta.servlet</ groupId>
< artifactId> jakarta.servlet-api</ artifactId>
</ dependency>
< dependency>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-devtools</ artifactId>
< scope> runtime</ scope>
< optional> true</ optional>
</ dependency>
< dependency>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-configuration-processor</ artifactId>
< optional> true</ optional>
</ dependency>
< dependency>
< groupId> org.projectlombok</ groupId>
< artifactId> lombok</ artifactId>
< optional> true</ optional>
</ dependency>
< dependency>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-starter-test</ artifactId>
< scope> test</ scope>
</ dependency>
</ dependencies>
< build>
< plugins>
< plugin>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-maven-plugin</ artifactId>
< configuration>
< skip> true</ skip>
< excludes>
< exclude>
< groupId> org.projectlombok</ groupId>
< artifactId> lombok</ artifactId>
</ exclude>
</ excludes>
</ configuration>
</ plugin>
</ plugins>
</ build>
</ project>
6. 效果图