springboot进行war包的package操作参考:
https://blog.csdn.net/zhangcongyi420/article/details/100065407
1、添加servlet依赖
<!--添加servlet-api的依赖,用来打war包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency>2、添加tomcat依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>3、保留改造前和改造后的启动类,分别命名为MainApp和MainWebApp:
@SpringBootApplication public class MainApp { public static void main(String[] args) { SpringApplication.run(MainApp.class,args); } } @SpringBootApplication public class MainWebApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MainApp.class,args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MainApp.class); } }4、pom中添加maven编译插件,并指定启动类(使用变量进行动态选择启动类):
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>${main.class}</mainClass> </configuration> </plugin> </plugins> </build>5、添加pom中的变量
<profiles> <!-- 定义了多种属性文件,在指定的id下,选择性使用指定属性文件下定义的属性(变量)等 --> <profile> <id>dev</id> <activation> <!-- 默认激活 --> <activeByDefault>true</activeByDefault> </activation> <properties> <!-- 开发 --> <packaging.type>jar</packaging.type> <main.class>xyz.jangle.MainApp</main.class> </properties> </profile> <profile> <id>product</id> <properties> <!-- 生产 --> <packaging.type>war</packaging.type> <main.class>xyz.jangle.MainWebApp</main.class> </properties> </profile> </profiles>6、使用变量定义打包类型
<groupId>xyz.jangle</groupId> <artifactId>app</artifactId> <packaging>${packaging.type}</packaging>7、通过打包命令选择具体环境
war包package :
package -Pproductjar包package:package :
package 或者 package -Pdev