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命令进行打包安装
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。