pom.xml设置
1.设置打包类型为war
<packaging>war</packaging>
2.如果需要通过命令行的方式启动,需要增加如下设置
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
说明:这样在war包中/META-INF/MANIFEST.MF中增加信息
Start-Class: com.xxx.Application
Spring-Boot-Classes: WEB-INF/classes/
Spring-Boot-Lib: WEB-INF/lib/
Spring-Boot-Version: 2.0.2.RELEASE
Created-By: Apache Maven 3.5.3
Build-Jdk: 1.8.0_172
Main-Class: org.springframework.boot.loader.WarLauncher
其中:
Start-Class为标注为@SpringBootApplication的类
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
其他信息不用管,是spring boot loader读取的,Main-Class为WarLauncher表示启动war,还有JarLauncher表示启动jar。
3.如果工程中没有web.xml文件,那么需要增加设置,避免maven打包报错
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
4.设置spring boot
有两种方式来引入spring boot
a)在parent节点指定
b)在dependencyManagement节点引入,同时设置<type>pom</type><scope>import</scope>