应项目部署需求,需要将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_20220629</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启动即可。
|