背景
1、环境Springboot项目,打包工具使用Maven
2、需要WAR包部署到国产中间件
3、项目依赖了一些JAr包,非Maven库中依赖
方案
1、首先修改pom文件
<dependency>
<groupId>com.xxxx</groupId>
<artifactId>commons-io</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${pom.basedir}/lib/commons-io-2.0.jar</systemPath>
</dependency>
scope属性指定为system,会读取本地三方依赖,systemPath为JAr包路径。
2、添加Maven plugin插件,修改POM文件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>lib</directory>
<targetPath>WEB-INF/lib/</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
重点是第二个plugin,这个插件会将依赖的JAr包打到WAR包中的WEB-INF/lib文件夹,这样才能被中间件加载。
<directory>lib</directory>
是指定本地的依赖JAr包位置,配置错误找不到对应的包。
3、按照Springboot打WAR包的方式修改项目
4、打包