SpringBoot使用Maven打包異常-引入外部jar的問題及解決方案
由于項目需要,在需要打包的時候,由于引入的外部jar在本地是可以使用的,但是當打包后啟動時報錯,找不到對應的類。
使用
1、引入外部jar包
項目中簡歷文件夾lib
可以在resultces包下簡歷一個lib文件夾,將jar包扔進去:
在配置文件中引用
<dependency> <groupId>com.xx.xxx</groupId> //組織,隨便命名 <artifactId>***</artifactId> //包的名字,隨便命名 <version>1.1.2</version> //版本,隨便命名 <scope>system</scope> //scope為system時,自動添加lib依賴包 <systemPath>${basedir}/src/main/resources/lib/**.jar</systemPath> //路徑,這里我jar在resources目錄的lib文件夾下,也可以放在跟目標,路徑按需修改 </dependency>
2、項目打包
遇到問題
是由于項目打包時,不識別外部jar,又沒有進行配置,繼而導致出現(xiàn)問題。
解決方案
解決方式很簡單,只需要在pom.xml里面配置下 includeSystemScope
就行。
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin>
PS:maven項目引入外部jar(打包是jar形式springboot項目)
1、在項目src同級目錄建立一個lib目錄,將jar包放入lib中
2、在pom.xml文件中引入依賴
<!-- 引入外部jar包 --> <dependency> <groupId>com.hikvision.artemis</groupId> <artifactId>sdk</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/artemis-http-client-1.0-SNAPSHOT.jar</systemPath> </dependency>
groupId、artifactId、version可以隨意寫
3、外部jar包可能與本地中jar起沖突,需要排除,常見的是日志沖突,外部jar也有引入日志的jar。在項目運行時會出現(xiàn)警告。
可以在pom所在目錄,使用cmd命令:mvn dependency:tree查看jar依賴關系,然后使用exclusions排除沖突的jar包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除jar沖突 --> <exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency>
這里是排除了日志,排除外部jar包中日志,若找不到依賴關系,再排除springboot自帶的log。
總結
到此這篇關于SpringBoot使用Maven打包異常-引入外部jar的問題及解決方案的文章就介紹到這了,更多相關SpringBoot打包異常引入外部jar內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java SpringBoot實現(xiàn)帶界面的代碼生成器詳解
這篇文章主要介紹了Java SpringBoot如何實現(xiàn)帶界面的代碼生成器,幫助大家更好的理解和使用Java SpringBoot編程語言,感興趣的朋友可以了解下2021-09-09如何解決org.apache.jasper.JasperException:無法為JSP編譯類詳解
這篇文章主要給大家介紹了關于如何解決org.apache.jasper.JasperException:無法為JSP編譯類的相關資料,原因可能是JSP文件的語法錯誤、類路徑問題或其他配置問題,建議檢查JSP文件的語法、類路徑配置和其他相關配置,需要的朋友可以參考下2023-06-06解決spring.thymeleaf.cache=false不起作用的問題
這篇文章主要介紹了解決spring.thymeleaf.cache=false不起作用的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06SpringBoot創(chuàng)建監(jiān)聽器的方法示例
在Java中,監(jiān)聽器(Listener)是一種設計模式,它允許對象在 特定事件 發(fā)生時 自動執(zhí)行某些操作,這種設計模式通常用于實現(xiàn) 發(fā)布-訂閱模型,本文給大家介紹了SpringBoot創(chuàng)建監(jiān)聽器的方法示例,感興趣的通過可以參考一下2024-04-04SpringBoot訪問web中的靜態(tài)資源的方式小結
這篇文章主要介紹了SpringBoot訪問web中的靜態(tài)資源的方式,本文給大家介紹了兩種方式,通過代碼示例和圖文講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-10-10mybatis foreach 循環(huán) list(map)實例
這篇文章主要介紹了mybatis foreach 循環(huán) list(map)實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03