- Maven 教程
- Maven - 首頁
- Maven - 概述
- Maven - 環境設定
- Maven - POM
- Maven - 構建生命週期
- Maven - 構建配置檔案
- Maven - 倉庫
- Maven - 外掛
- Maven - 建立專案
- Maven - 構建和測試專案
- Maven - 外部依賴
- Maven - 專案文件
- Maven - 專案模板
- Maven - 快照
- Maven - 構建自動化
- Maven - 管理依賴
- Maven - 部署自動化
- Maven - Web 應用
- Maven - Eclipse IDE
- Maven - NetBeans
- Maven - IntelliJ IDEA
- Maven 有用資源
- Maven - 常見問題解答
- Maven - 快速指南
- Maven - 有用資源
- Maven - 討論
Maven - 外部依賴
如您所知,Maven 使用倉庫的概念進行依賴管理。但是,如果依賴項在任何遠端倉庫和中央倉庫中都不可用,會發生什麼情況?Maven 透過 **外部依賴** 的概念為這種情況提供瞭解決方案。
例如,讓我們對“建立 Java 專案”章節中建立的專案進行以下更改。
在 src 資料夾中新增 **lib** 資料夾。
將任何 jar 檔案複製到 lib 資料夾中。我們使用了 **ldapjdk.jar**,它是一個用於 LDAP 操作的輔助庫。
現在我們的專案結構應如下所示:
這裡您擁有自己的庫,特定於專案,這是一種常見情況,它包含一些 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 專案中指定外部依賴項。
廣告