天天看点

Springboot使用Maven将本地依赖打包到war包背景方案

背景

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包的方式修改项目

Springboot使用Maven将本地依赖打包到war包背景方案
Springboot使用Maven将本地依赖打包到war包背景方案
Springboot使用Maven将本地依赖打包到war包背景方案

4、打包

Springboot使用Maven将本地依赖打包到war包背景方案