当前环境:Windows
Tomcat版本:tomcat8.5
SpringBoot版本: 2.2.3
<packaging>warpackaging>
2.加入SpringBoot打包插件(pom.xml)
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-maven-pluginartifactId>
- plugin>
- plugins>
- build>
3. 在打包插件中加入配置SpringBoot的入口类的标签名
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-maven-pluginartifactId>
-
- <configuration>
- <fork>truefork>
- <jvmArguments>Dfile.encoding=UTF-8jvmArguments>
-
- <mainClass>com.ApplicationmainClass>
- configuration>
- plugin>
- plugins>
- build>
4.依赖的修改(pom.xml)
因为打war在tomcat部署,我们需要将内嵌的tomcat去掉,加入你的springboot有jsp文件的话还要将tomcat解析jsp的依赖去掉。
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-webartifactId>
- dependency>
-
- <dependency>
- <groupId>org.apache.tomcat.embedgroupId>
- <artifactId>tomcat-embed-jasperartifactId>
- <scope>providedscope>
- dependency>
-
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-tomcatartifactId>
- <scope>providedscope>
- dependency>
provided : 这个scope的意思在当前环境可以使用,但是不参与打包!!!
5. 修改主配置类(用于依赖外部tomcat)
- @SpringBootApplication
- public class Application extends SpringBootServletInitializer {
-
- @Override //这个表示使用外部的tomcat容器
- protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
- // 注意这里要指向原先用main方法执行的启动类
- return builder.sources(Application.class);
- }
-
- public static void main(String[] args) {
- SpringApplication.run(Application.class, args);
- }
- }
6. 测试war包
将war包放入tomcat下的webapps下面,我们启动tomcat:

7. 启动tomcat


注意:war包部署的时候,tomcat默认将你的路径变成你的war的路径。
访问我们的测试接口

成功
例如 你的war是 test.war
那么部署的时候访问接口必须是
http://localhost:8080/test/
8.tomcat访问配置
直接打包,上传到服务器的tomcat的webapps下,启动后自动会解压,这里需要注意的一点就是需要修改tomcat配置文件server.xml,添加如下内容:

<Context path="/" docBase="redis_tools-1.0-SNAPSHOT" debug="0" privileged="true"/>
注:redis_tools-1.0-SNAPSHOT设置为包名即可,其他的地方都无需修改,启动后访问:
http://127.0.0.1:8080/redis_tools-1.0-SNAPSHOT