项目打 war 包发布时,由于引入了第三方 Jar 包,导致找不到包而打包失败。接下来我就将 maven 打包需要引入额外的 Jar 包详细过程分享出来供大家参考:
👀补全的 pom 文件中打包的插件依赖
原始的打包插件依赖:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
修改后的打包插件【需要导入系统之外的 Jar 包】
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<includeSystemScope>true</includeSystemScope>:代表 maven 打包时会将外部引入的 jar 包(比如在根目录下或 resource 文件下新加外部 jar 包)打包到项目 jar,在服务器上项目才能运行,不加此配置,本地可以运行,因为本地可以再 lib 下找到外部包,但是服务器上 jar 中是没有的。
👀设置导入第三方 Jar包的目录结构
在项目的 webapp/lib目录下,导入指定的第三方 Jar 包
👀在 pom.xml 文件中引入该依赖
<!--引入第三方jar包-->
<dependency>
<!--自定义-->
<groupId>com.abc.pay</groupId>
<!--自定义-->
<artifactId>TrustPayClient-V3.1.8-java</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/lib/TrustPayClient-V3.1.8.jar</systemPath>
</dependency>
${project.basedir}理解:
${basedir}
项目的根目录(包含pom.xml文件的目录)
${version}
项目版本需要自定义 groupId 、artifactId 及 version 的值
👀打包
再次 maven-- clean-- compile-- package 就可以将外部引入的jar 包成功打入项目的 war 包中了。