1 起因
在和一些第三方廠商對接的過程中, 偶爾會遇到對方提供的SDK自帶maven無法獲取的jar包的情況(對于開源激進者的筆者很討厭這種行為)
我們該如何處理這種情況呢, 其實解決思路很簡單:
- 在pom中引入本地jar
- 打包時本地jar包含在內(nèi)
讓我們來看看具體怎么操作吧
idea中雖然可以在項目配置加入, 但打包時會報錯, 相關(guān)的處理方案不再思考
2 解決方案
首先, 終極解決方案是: 把jar包傳到自己的maven私服上
對于沒有自己私服的小伙伴們這是句廢話, 我們還是來看看實際的吧
2.1 在pom中引入
以下是我個人的解決方案, 先介紹下項目目錄:
project |---src |---lib |---pig.jar |---pom.xml
我們可直接在pom中加入如下引用:
<dependency>
<groupId>cn.com.pig</groupId>
<artifactId>pig</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/pig.jar</systemPath>
</dependency>
其中的groupId, version等內(nèi)容, 可以在idea中打開jar包, 查看里面的MANIFEST.MF獲取
2.2 Spring Boot 打包處理
完成了pom引入后, 直接執(zhí)行maven的package命令, 會出現(xiàn)找不到pig.jar的問題, 我們繼續(xù)來進行修改:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--加入這條配置即可-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
<build>
2.3 拓展: Spring Boot 打包加入其它資源
在和硬件設(shè)備交互時, 我們除了基礎(chǔ)的jar包外, 可能還需要引入一些dll文件(當然, 筆者更推薦將這些dll放在項目外部, 引用時通過絕對路徑處理)
可以采用下面的方式來加入這些資源:
<resources>
<resource>
<directory>dll</directory>
<targetPath>/BOOT-INF/dll/</targetPath>
<includes>
<include>*.*</include>
</includes>
</resource>
</resources>
對上面的參數(shù)進行下講解:
- directory: 本地路徑, dll即project/dll
- targetPath: 打包完成后在jar包中的路徑, 如果開頭不為/, 默認在classes目錄下追加, 例如dll, 則會實際生成在/BOOT-INF/classes/dll, 上面填寫的則會打包到/BOOT-INF/dll
- include: 包含文件, *.*為所有
以上就是在maven中引入本地jar包的步驟的詳細內(nèi)容,想要了解更多關(guān)于maven的其他資料請關(guān)注W3Cschool其它相關(guān)文章!希望大家能夠多多關(guān)注和支持。