Spring Boot 本地jar包


一:問題場景

    在開發過程中,我們有時會遇到Maven中央庫沒有的jar包,比如公司自己開發的而又沒有放入公司私庫的jar包,這時就不能通過三圍在pom中直接引入。那么怎么在項目中引入這些本地或第三方jar包呢?

 

二:解決方法

    常用的解決方法主要有兩種。

    第一種是將本地jar包安裝在本地maven庫。這種方法簡單方便,以后其他項目需要引入時不需要再次安裝。如果沒有放入公司私庫,則不適合協同開發,比如一位同事在本地安裝了這個jar包,另一位同事通過SVN或git將代碼下載下來后,由於本地庫沒有安裝該jar包,可能會報錯。

    第二種是將本地jar包放入項目目錄中。這種方法解決了第一種方法中的問題,但需要在pom文件中加上少許配置,這種方法根據將項目打包成jar和war包而略有不同。

 

三:詳細方法

(1)安裝在本地maven庫

    假設我們需要引入的包為 myjar-1.0.jar

(1.1)打開cmd,進入myjar-1.0.jar所在的目錄

(1.2)執行如下命令:mvn install:install-file -Dfile=myjar-1.0.jar -DgroupId=com.ws.sample -DartifactId=myjar -Dversion=1.0 -Dpackaging=jar

注意:install:install-file 中-file與install之間沒有空格,三圍可以根據自己需求設置

然后去本地資源庫看下是否有相應文件

(1.3)在pom依賴中引入安裝的jar包

 

第一種方法介紹完畢

 

 

(2)本地jar包放入項目目錄中(項目打包成jar)

 (2.1)jar包結構

 

(2.2)在本地項目目錄中建一個目錄專門來放jar文件,位置可根據需求設置,如項目根目錄下建一個lib目錄,並將本地jar包放入lib目錄下。

(2.3)pom依賴中加入如下配置

說明:basedir是自帶變量,指的是當前項目的絕對路徑

 此時,在項目中使用myjar-1.0.jar包中類完全沒有問題,但是我們來看看打包后結果:

 

 在mvn clean package將項目打包成jar包后,BOOT-INF\lib目錄下並沒有我們引入的myjar-1.0.jar包

 這時,還需要在pom中加入如下配置

 

 再次打包,mvn clean package打包后結果:

在使用mvn clean package將項目打包成jar包后,BOOT-INF\lib目錄下出現了我們引入的myjar-1.0.jar包

項目引入本地jar包並打包成jar包的方法介紹完畢,2.4節將介紹一種和本節相似的方法。

 

(2.4)通過資源來控制打包

注意:第二個resource不能少,否則src/main/resources目錄下資源不會被打包進項目jar包

此種方法也需要配置spring-boot-maven-plugin,只是相對2.3中配置去掉configuration的配置,這種方法個人感覺沒有2.3節方便

 

(3)項目打包成war包

   (3.1)war包結構

(3.2)我們按照第2節中方法,將項目打包成war包,而不是jar包,看看打包后結果:

    發現按照打包jar包的方法打包成war包時,本地jar文件並沒有打包進來。

(3.3)在pom中添加如下插件

說明:插件將lib目錄下的本地jar包打包進WEB-INF/lib目錄

mvn clean package,再次將項目打包成war包,再次看下打包結果:

 

 本地myjar-1.0.jar被打包進項目war包的lib目錄了。

 第二種方法介紹完畢

 

 

提升個人競爭力,歡迎關注我的微信公眾號:破局人


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM