-
SpringBoot项目在打包的时候默认是jar包的形式,但对于某些需要部署在Tomcat的项目,就需要将SpringBoot项目打包成war包,然后部署在Tomcat上面。
-
新建一个SpringBoot项目 springboot-profile
-
在pom.xml中做如下的修改
-
修改打包方式为war的形式
<packaging>war</packaging>
-
修改打包后war包的名称,在下面添加
<finalName>springboot-profile</finalName>
-
-
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 http://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>2.1.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.kangswx</groupId> <artifactId>springboot-profile</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-profile</name> <description>Demo project for Spring Boot</description> <!-- 打包方式为war包 --> <packaging>war</packaging> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>local</id> <properties> <profileActive>local</profileActive> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>dev</id> <properties> <profileActive>dev</profileActive> </properties> </profile> <profile> <id>pro</id> <properties> <profileActive>pro</profileActive> </properties> </profile> </profiles> <build> <!-- 修改打包后war包的名称 --> <finalName>springboot-profile</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/webapp</directory> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>application-${profileActive}.yml</include> <include>application.yml</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> </project>
-
在于SpringBoot启动类同级的目录下新建一个类SpringbootProfileServletInitializer,内容如下
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; class SpringbootProfileServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringbootProfileApplication.class); } }
-
在idea中打包的方式有两种
-
通过idea提供的图形化工具打包
双击idea中右上角maven下的package或者install即可完成打包
-
通过idea的命令行打包
.
如果SpringBoot项目为多环境项目,打包的时候只需要特定的配置文件的时候需要通过命令行加参数的方式进行打包,打开idea下方的Terminal,然后执行命令 mvn clean package -P 环境名称,也可以进行打包。
-
-
打包完成后即可在项目的Target下面找到打包完成的war包,如下图
-
将上面的war包复制出来,就可以直接部署在Tomcat中
将SpringBoot项目打成war包
最新推荐文章于 2023-12-14 15:34:11 发布