背景
開發(fā)的項目是多模塊的方式,工程結構如下圖拖陆,接上文部署docker tomcat抹恳,因為要部署到tomcat上,所以spring-boot內置的tomcat等不能再使用橙困,打包成war部署瞧掺;
工程目錄結構如下
目錄結構
步驟
- 忽略掉spring-boot-starter-web引入的tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--忽略內嵌tomcat,打包部署到tomcat-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
2 .引入開發(fā)環(huán)境下的tomcat凡傅,供開發(fā)使用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.4.RELEASE</version>
<scope>provided</scope> <!--關鍵是scope改為provided辟狈,在編譯和測試時有效 -->
</dependency>
- 繼承SpringBootServletInitializer
在啟動類目錄下新建子類繼承SpringBootServletInitializer
public class FangJianAdminServletInitializer extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
return application.sources(FangJianAdminApplication.class);
}
}
- 啟動類模塊中 bootstrap模塊pom配置,新增build,其余模塊的一定要刪掉這個build
<parent>
<groupId>com.fangjian.resturant-admin</groupId>
<artifactId>resturant-admin</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.fangjian.resturant-admin</groupId>
<artifactId>bootstrap</artifactId>
<packaging>war</packaging> #重點
……省略依賴管理……
<build>
<finalName>resturant-rest</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.4.RELEASE</version>
<configuration>
<mainClass>com.fangjian.resturant.admin.bootstrap.FangJianAdminApplication</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!-- 把class打包jar作為附件 -->
<attachClasses>true</attachClasses>
</configuration>
<version>3.2.3</version>
</plugin>
</plugins>
</build>
- 在parent的pom.xml中
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
然后就可以打包了夏跷,打包