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