Springboot多模块打包成war
1、修改父模块
引入全部子模块
<modules>
<module>xxx-common</module>
......
</modules>
去除内置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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.6.RELEASE</version>
</dependency>
2、修改启动类所在模块
修改打包方式
<packaging>war</packaging>
<build>
<finalName>war名称</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>启动类地址</mainClass>
</configuration>
</plugin>
</plugins>
</build>
修改启动方式,继承SpringBootServletInitializer
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(StartApplication.class);
}
}
3、部署在Tomcat
将xx.war放在webapps路径下,启动Tomcat,通过localhost://8080/war包名称/api
访问