今天做东西时要用到第三发jar文件,本地代码运行没有问题,将war包部署服务器一直显示classNotFoundError之类的问题,经过排查发现打war包后第三方jar文件没有打进war中,看了springBoot文档后解决了该问题,特此记录!如下
1、我的第三方jar文件(本地jar亦是如此)
<!-- 明日摄像头控制 -->
<dependency>
<groupId>com.sun</groupId> <!--自定义-->
<artifactId>jna</artifactId> <!--自定义-->
<version>1.0</version> <!--自定义-->
<scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
<systemPath>${project.basedir}/src/main/resources/lib/jna.jar</systemPath> <!--项目根目录下的lib文件夹下-->
</dependency>
2、spring-boot-maven-plugin 中 做如下添加
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--将本地包打进war包中-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
3、最重要的一步,我就是将这步没有添加花费了好长时间
<!--引入本地/第三方jar包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/resources/lib</directory>
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
最后测试成功!