今天做東西時要用到第三發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>
最後測試成功!