SpringBoot使用Maven打包異常-引入外部jar的問題及解決方案
由于項(xiàng)目需要,在需要打包的時(shí)候,由于引入的外部jar在本地是可以使用的,但是當(dāng)打包后啟動(dòng)時(shí)報(bào)錯(cuò),找不到對(duì)應(yīng)的類。
使用
1、引入外部jar包
項(xiàng)目中簡(jiǎn)歷文件夾lib
可以在resultces包下簡(jiǎn)歷一個(gè)lib文件夾,將jar包扔進(jìn)去:
在配置文件中引用
<dependency>
<groupId>com.xx.xxx</groupId> //組織,隨便命名
<artifactId>***</artifactId> //包的名字,隨便命名
<version>1.1.2</version> //版本,隨便命名
<scope>system</scope> //scope為system時(shí),自動(dòng)添加lib依賴包
<systemPath>${basedir}/src/main/resources/lib/**.jar</systemPath> //路徑,這里我jar在resources目錄的lib文件夾下,也可以放在跟目標(biāo),路徑按需修改
</dependency>
2、項(xiàng)目打包
遇到問題
是由于項(xiàng)目打包時(shí),不識(shí)別外部jar,又沒有進(jìn)行配置,繼而導(dǎo)致出現(xiàn)問題。
解決方案
解決方式很簡(jiǎ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同級(jí)目錄建立一個(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í)會(huì)出現(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot使用hibernate validator校驗(yàn)方式
hibernate validator提供了一套比較完善、便捷的驗(yàn)證實(shí)現(xiàn)方式。下面小編給大家介紹下springboot使用hibernate validator校驗(yàn)方式,感興趣的朋友一起看看吧2018-01-01
數(shù)據(jù)庫連接超時(shí)java處理的兩種方式
這篇文章主要介紹了數(shù)據(jù)庫連接超時(shí)java處理的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Java基于FFmpeg實(shí)現(xiàn)Mp4視頻轉(zhuǎn)GIF
FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。本文主要介紹了在Java中如何基于FFmpeg進(jìn)行Mp4視頻到Gif動(dòng)圖的轉(zhuǎn)換,感興趣的小伙伴可以了解一下2022-11-11
Android設(shè)備如何保證數(shù)據(jù)同步寫入磁盤的實(shí)現(xiàn)
這篇文章主要介紹了Android設(shè)備如何保證數(shù)據(jù)同步寫入磁盤的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
eclipse創(chuàng)建java項(xiàng)目并運(yùn)行的詳細(xì)教程講解
eclipse是java開發(fā)的ide工具,是大部分java開發(fā)人員的首選開發(fā)工具,可是對(duì)于一些新Java人員來說,不清楚eclipse怎么運(yùn)行項(xiàng)目?這篇文章主要給大家介紹了關(guān)于eclipse創(chuàng)建java項(xiàng)目并運(yùn)行的相關(guān)資料,需要的朋友可以參考下2023-04-04
Java線程池流程編排運(yùn)用實(shí)戰(zhàn)源碼
這篇文章主要介紹了Java線程池流程編排運(yùn)用實(shí)戰(zhàn)源碼,就在流程引擎的基礎(chǔ)上運(yùn)用?ThreadPoolExecutor,使用線程池實(shí)現(xiàn)?SpringBean?的異步執(zhí)行2022-03-03
Mybatis-plus通用查詢方法封裝的實(shí)現(xiàn)
本文主要介紹了Mybatis-plus通用查詢方法封裝的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

