Maven - Sự phụ thuộc bên ngoài

Như bạn đã biết, Maven thực hiện việc quản lý phụ thuộc bằng cách sử dụng khái niệm Kho lưu trữ. Nhưng điều gì sẽ xảy ra nếu sự phụ thuộc không có sẵn trong bất kỳ kho lưu trữ từ xa và kho lưu trữ trung tâm nào? Maven cung cấp câu trả lời cho tình huống như vậy bằng cách sử dụng khái niệmExternal Dependency.

Ví dụ: chúng ta hãy thực hiện các thay đổi sau đối với dự án được tạo trong chương 'Tạo dự án Java'.

  • Thêm vào lib vào thư mục src.

  • Sao chép bất kỳ jar nào vào thư mục lib. Chúng tôi đã sử dụngldapjdk.jar, là một thư viện trợ giúp cho các hoạt động LDAP.

Bây giờ cấu trúc dự án của chúng ta sẽ giống như sau:

Ở đây bạn đang có thư viện của riêng mình, cụ thể cho dự án, đây là trường hợp thông thường và nó chứa các lọ, có thể không có sẵn trong bất kỳ kho lưu trữ nào để maven tải xuống. Nếu mã của bạn đang sử dụng thư viện này với Maven, thì bản dựng Maven sẽ không thành công vì nó không thể tải xuống hoặc tham chiếu đến thư viện này trong giai đoạn biên dịch.

Để xử lý tình huống, hãy thêm phần phụ thuộc bên ngoài này vào maven pom.xml bằng cách sử dụng cách sau.

<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>

Nhìn vào phần tử phụ thuộc thứ hai trong phần phụ thuộc trong ví dụ trên, phần tử này làm rõ các khái niệm chính sau đây về External Dependency.

  • Các phụ thuộc bên ngoài (vị trí jar thư viện) có thể được định cấu hình trong pom.xml theo cách tương tự như các phụ thuộc khác.

  • Chỉ định groupId giống như tên của thư viện.

  • Chỉ định ArtifactId giống như tên của thư viện.

  • Chỉ định phạm vi là hệ thống.

  • Chỉ định đường dẫn hệ thống liên quan đến vị trí dự án.

Hy vọng bây giờ bạn đã rõ ràng về các phụ thuộc bên ngoài và bạn sẽ có thể chỉ định các phụ thuộc bên ngoài trong dự án Maven của mình.