Spring Boot项目如何打成war包部署呢?
下文笔者讲述SpringBoot项目打成war包的方法分享,如下所示
笔者先简述一下war及SpringBoot的相关概念
笔者先简述一下war及SpringBoot的相关概念
war包的介绍
war包由sun公司提出的一种web应用程序格式,她其实是一个压缩包 里面包含lib,class,resource,config(web.xml)等信息 war是一个可以直接运行的web模块 在网站程序的打包中,我们经常将其打成war包 然后放入到tomcat中运行 例: 我们将生成的war包,放入到tomcat的webapp目录下,tomcat会自动解压war包,然后对外提供服务
SpringBoot简介
我们都知道springboot默认会打成一个jar包,并且里面内嵌了tomcat服务器
那么如何将springboot打成war包,并且放于到tomcat中运行呢
注意事项:
如果使用了Spring的WebFlux功能
则不支持 war 包部署
生成war包的方式
1. 修改 pom.xml 中的打包方式
<packaging>war</packaging>
2. 调整依赖
<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>
<!-- 该包只在编译和测试的时候使用 -->
<scope>provided</scope>
</dependency>
3. 继承 SpringBootServletInitializer
@SpringBootApplication
public class AppQuickStart extends SpringBootServletInitializer {
private static Logger logger = LoggerFactory.getLogger(AppQuickStart.class);
public static void main(String[] args) {
System.out.println(Thread.currentThread().getName());
logger.info("app begin to start...");
SpringApplication.run(AppQuickStart.class, args);
logger.info("app start success...");
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(AppQuickStart.class);
}
}
4. 一些其他注意点
下面是 build 的配置,主要是设置了应用的名称,还用就是加了maven-war-plugin这个插件,不然会报找不到web.xml这个错误
<build>
<finalName>appName</finalName>
<!-- 省略其他配置 -->
<plugins>
<plugin>
<configuration>
<excludeDevtools>true</excludeDevtools>
</configuration>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
采用以上方式后,即可使用mvn clean install命令进行打包安装
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


