1. 程式人生 > >maven中新增自定義jar包

maven中新增自定義jar包

引言: 在軟體專案中,Maven提供了一體化的類庫管理系統,非常實用。但是,如果新增的類庫jar在網路上無法獲取到,如何在本地按照Maven的規則新增進來呢?本文將通過一個小例子展示新增過程。

背景介紹:

  一個Maven管理的Java專案,提供一個系統級別的POM.xml,其中定義了整個專案使用的類庫。

需求:

    需要新增一個自定義的類庫到當前專案中。假定當前的類庫檔名為:abc.jar.、

如何將類庫新增進來?

1.  找到當前Maven的Repository類庫位置

      一般預設情況下,在window系統下是當前使用者目錄: C:\Users\ZhangSan.  其中ZhangSan就是系統中當前的使用者名稱. 在Linux系統下是/home/${USER_NAME}.

     在此目錄下,有一個隱藏的目錄.m2/repository專門用來存放Maven系統中管理的各種類庫檔案。

2.  假定當前abc.jar的版本為1.0

3.  在新增POM.xml中新增的Dependency片段為:

  1. <dependency>
  2.      <groupId>MyLocalJar</groupId>
  3.      <artifactId>abc</artifactId>
  4.      <version>1.0</version>
  5.    </dependency>

4.  在.m2/repository下需要新建的目錄為:

        MyLocalJar/abc/1.0/abc-1.0.jar

    如果groupId為 MyLocalJar.myjar.util,則會被分解為3層的目錄結構:MyLocalJar/myjar/util/1.0. 

     注意:  這裡的abc.jar已經被新增了版本號,重名為abc-1.0.jar.

然後刷新系統就可以,正常使用了。

總結:

    Maven其實遵循一個簡單的原則,就是基於資料夾的層次來隔離各自的路徑,groupId,arrtifactId,version都轉換為了檔案系統中的目錄結構。對於Maven系統中的jar包本身也需要新增版本資訊,例如這裡的abc-1.0.

    基於多版本的情況下,則會根據不同的版本,生成不同的目錄,這個也是Maven在管理多版本的類包下的做法。