Maven - 外部依賴



如您所知,Maven 使用倉庫的概念進行依賴管理。但是,如果依賴項在任何遠端倉庫和中央倉庫中都不可用,會發生什麼情況?Maven 透過 **外部依賴** 的概念為這種情況提供瞭解決方案。

例如,讓我們對“建立 Java 專案”章節中建立的專案進行以下更改。

  • 在 src 資料夾中新增 **lib** 資料夾。

  • 將任何 jar 檔案複製到 lib 資料夾中。我們使用了 **ldapjdk.jar**,它是一個用於 LDAP 操作的輔助庫。

現在我們的專案結構應如下所示:

external repository project structure

這裡您擁有自己的庫,特定於專案,這是一種常見情況,它包含一些 jar 檔案,這些 jar 檔案可能在任何 Maven 可以下載的倉庫中都不可用。如果您的程式碼使用此庫與 Maven 結合,則 Maven 構建將失敗,因為它無法在編譯階段下載或引用此庫。

為了處理這種情況,讓我們使用以下方法將此外部依賴項新增到 Maven 的 **pom.xml** 中。

<project xmlns = "http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.companyname.bank</groupId>
   <artifactId>consumerBanking</artifactId>
   <packaging>jar</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>consumerBanking</name>
   <url>http://maven.apache.org</url>

   <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
      </dependency>

      <dependency>
         <groupId>ldapjdk</groupId>
         <artifactId>ldapjdk</artifactId>
         <scope>system</scope>
         <version>1.0</version>
         <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
      </dependency>
   </dependencies>

</project>

檢視上面示例中 dependencies 下的第二個 dependency 元素,它闡明瞭關於 **外部依賴** 的以下關鍵概念。

  • 外部依賴項(庫 jar 檔案位置)可以在 pom.xml 中以與其他依賴項相同的方式進行配置。

  • 將 groupId 指定為庫名稱。

  • 將 artifactId 指定為庫名稱。

  • 將 scope 指定為 system。

  • 指定相對於專案位置的系統路徑。

希望現在您已經瞭解了外部依賴項,並且能夠在您的 Maven 專案中指定外部依賴項。

廣告

© . All rights reserved.