引言
我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时这也可能是我们的一个瓶颈,因为如果我们需要对tomcat做集群或者一些优化的话是非常不方便的,所以我们仍然需要将springBoot的项目部署到外在的tomcat中,下面小编就介绍一下如何将jar包转换成war包。
第一步、将SpringBoot的项目的打包方式设置为war
- <groupId>com.example</groupId>
- <artifactId>demo</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <strong><packaging>war</packaging></strong>
第二步、移除内嵌的tomcat模块
但是为了我们在本机测试方便,我们还需要引入它,所以配置如下
- <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>
第三步、添加tomcat-servelt-api依赖
- <dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-servlet-api</artifactId>
- <version>7.0.42</version>
- <scope>provided</scope>
- </dependency>
第四步、修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法
- package com.example;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.builder.SpringApplicationBuilder;
- import org.springframework.boot.web.support.SpringBootServletInitializer;
- import org.springframework.cache.annotation.EnableCaching;
- @SpringBootApplication
- @EnableCaching
- public class SpringDataJpaExampleApplication extends SpringBootServletInitializer {
- @Override
- protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
- return application.sources(SpringDataJpaExampleApplication.class);
- }
- public static void main(String[] args) {
- SpringApplication.run(SpringDataJpaExampleApplication.class, args);
- }
- }
第五步、添加war插件,用来自定义打包以后的war包的名称
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <warSourceExcludes>src/main/resources/**</warSourceExcludes>
- <warName>springBoot</warName>
- </configuration>
- </plugin>
引入上面这个插件,是避免maven打包的时候为我们默认的一个带有版本号的war包名称,因为我们部署到
tomcat以后,在访问项目的时候,需要用到这个war包的名称。例如的war包名称为springBoot。本地访问的路径为:http://localhost:9090/users/。则部署到tomcat以后访问路径为:
http://localhost:9090/springBoot/users/。
经过上面这几个步骤,我们就完成了jar包到war包的改变,下面我们需要利用maven生成war包即可
右击项目——》run as ——》maven build ——》在goals中输入package——》run 即可