应项目部署需求,需要将springboot 架构的项目打成war包进行部署,部署期间遇到各种问题,经过反编译一些查看以及一些代码审查,把问题解决,下面将主要流程分享一下,避免踩坑
项目内部改造
1、pom文件的修改
a.打包方式指定成war包
<packaging>war</packaging>
b.将spring-boot-starter-web中自带的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><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency>
c.引入tomcat依赖,版本需要根据项目情况自行指定
<dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-servlet-api</artifactId><version>7.0.104</version><scope>provided</scope></dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>
d、build部分,需要指定打包插件以及包地址
<build><finalName>${artifactId}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><includeSystemScope>true</includeSystemScope></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>3.2.2</version><configuration><webResources><webResource><directory>${pom.basedir}/src/main/resources/lib/</directory><targetPath>WEB-INF/lib/</targetPath><includes><include>**/*.jar</include></includes></webResource></webResources></configuration></plugin></plugins></build>
注意:如有外部包插入,比如阿里sdk,需要指定好lib路径,将外部的jar,打入进WEB-INF里面的lib下面
比如
<dependency><groupId>com.taobao</groupId><artifactId>taobao-sdk-java-auto_0629</artifactId><version>1.0</version><scope>system</scope><systemPath>${pom.basedir}/src/main/resources/lib/taobao-sdk-java-auto.jar</systemPath></dependency>
idea tomcat部署
a. 新建一个Tomcat Server服务器
b.指定tomcat包的位置
c.指定部署的war 包
最后选择普通模式或者debug启动即可。
如果觉得《【实战】springboot打成war 以及部署到本地tomcat流程》对你有帮助,请点赞、收藏,并留下你的观点哦!