在maven中引入本地jar包的步驟

1 起因

在和一些第三方廠商對接的過程中, 偶爾會遇到對方提供的SDK自帶maven無法獲取的jar包的情況(對於開源激進者的筆者很討厭這種行為)

我們該如何處理這種情況呢, 其實解決思路很簡單:

  • 在pom中引入本地jar
  • 打包時本地jar包含在內

讓我們來看看具體怎麼操作吧

idea中雖然可以在項目配置加入, 但打包時會報錯, 相關的處理方案不再思考

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等內容, 可以在idea中打開jar包, 查看裡面的MANIFEST.MF獲取

2.2 Spring Boot 打包處理

完成瞭pom引入後, 直接執行maven的package命令, 會出現找不到pig.jar的問題, 我們繼續來進行修改:

<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 打包加入其它資源

在和硬件設備交互時, 我們除瞭基礎的jar包外, 可能還需要引入一些dll文件(當然, 筆者更推薦將這些dll放在項目外部, 引用時通過絕對路徑處理)

可以采用下面的方式來加入這些資源:

<resources>    
    <resource> 
        <directory>dll</directory>        
        <targetPath>/BOOT-INF/dll/</targetPath>        
        <includes>            
            <include>*.*</include>        
        </includes>    
    </resource>
</resources>

對上面的參數進行下講解:

  • directory: 本地路徑, dll即project/dll
  • targetPath: 打包完成後在jar包中的路徑, 如果開頭不為/, 默認在classes目錄下追加, 例如dll, 則會實際生成在/BOOT-INF/classes/dll, 上面填寫的則會打包到/BOOT-INF/dll
  • include: 包含文件, *.*為所有

以上就是在maven中引入本地jar包的步驟的詳細內容,更多關於maven中引入本地jar包的資料請關註WalkonNet其它相關文章!