Cây phụ thuộc MVN

Cay Phu Thuoc Mvn

“Phần phụ thuộc là các mã và đoạn mã bên ngoài được nhập vào dự án của bạn để cung cấp thêm chức năng. Ví dụ: một phần phụ thuộc có thể là một tệp hoặc tệp lưu trữ khác trong Dự án Java. Các phần khác của dự án sau đó tham chiếu đến phần phụ thuộc để chạy.

Có một hình ảnh rõ ràng về cây phụ thuộc cho dự án của bạn có thể có lợi. Nó cho phép nhanh chóng tìm ra xung đột giữa các gói đã cài đặt và giải quyết chúng một cách hiệu quả.







Trong hướng dẫn này, chúng ta sẽ học cách xem cây phụ thuộc của một dự án Maven. ”



Bắt đầu nào.



Plugin phụ thuộc Maven

Tiện ích Apache Maven đi kèm với một công cụ cho phép bạn quản lý các phần phụ thuộc của mình. Plugin Maven Dependency sẽ cho phép bạn chạy một lệnh đơn giản trong dự án của mình và trực quan hóa tất cả các phụ thuộc của nó.





Tài nguyên plugin được hiển thị bên dưới:

https://maven.apache.org/plugins/maven-dependency-plugin/usage.html



Cách tốt nhất để hình dung cây phụ thuộc dự án của bạn với plugin này là chạy lệnh sau:

phụ thuộc mvn : cây

Lệnh trước đó sẽ xác định vị trí tất cả các phụ thuộc trong dự án của bạn và trả về một cấu trúc dạng cây.

Hãy để chúng tôi minh họa cách chúng tôi có thể thực hiện điều này.

Bạn có thể sử dụng bất kỳ dự án Maven nào với bất kỳ phụ thuộc bắt buộc nào để thực hiện việc này.

Khi bạn chạy lệnh trên, bạn sẽ thấy kết quả ví dụ sau:

[ THÔNG TIN ] --- maven - sự phụ thuộc - cắm vào : 2,8 : cây ( mặc định - cli ) @ jedis ---
[ THÔNG TIN ] redis. khách hàng : jedi : cái lọ : 4.3.0 - SNAPSHOT
[ THÔNG TIN ] + - tổ chức. slf4j : slf4j - api : cái lọ : 1.7.32 : biên dịch
[ THÔNG TIN ] + - tổ chức. apache . commons : commons - pool2 : cái lọ : 2.11.1 : biên dịch
[ THÔNG TIN ] + - tổ chức. json : json : cái lọ : 20211205 : biên dịch
[ THÔNG TIN ] + - với. Google . mã số . gson : gson : cái lọ : 2,8,9 : biên dịch
[ THÔNG TIN ] + - junit : junit : cái lọ : 4.13.2 : kiểm tra
[ THÔNG TIN ] | \ - tổ chức. hamcrest : hamcrest - cốt lõi : cái lọ : 1,3 : kiểm tra
[ THÔNG TIN ] + - tổ chức. slf4j : slf4j - giản dị : cái lọ : 1.7.32 : kiểm tra
[ THÔNG TIN ] + - với. kohlschutter . ổ cắm junix : ổ cắm junix - cốt lõi : hiểu : 2.4.0 : kiểm tra
[ THÔNG TIN ] | + - với. kohlschutter . ổ cắm junix : ổ cắm junix - tự nhiên - phổ thông : cái lọ : 2.4.0 : kiểm tra
[ THÔNG TIN ] | \ - với. kohlschutter . ổ cắm junix : ổ cắm junix - phổ thông : cái lọ : 2.4.0 : kiểm tra
[ THÔNG TIN ] \ - tổ chức. mockito : mockito - nội tuyến : cái lọ : 3.12.4 : kiểm tra
[ THÔNG TIN ] \ - tổ chức. mockito : mockito - cốt lõi : cái lọ : 3.12.4 : kiểm tra
[ THÔNG TIN ] + - mạng lưới. bytebuddy : byte - Bạn bè : cái lọ : 1.11.13 : kiểm tra
[ THÔNG TIN ] + - mạng lưới. bytebuddy : byte - Bạn bè - đại lý : cái lọ : 1.11.13 : kiểm tra
[ THÔNG TIN ] \ - tổ chức. đã đồng ý : đã đồng ý : cái lọ : 3.2 : kiểm tra

Như bạn có thể thấy từ đầu ra ở trên, Maven trả về tất cả các phụ thuộc dự án của chúng tôi ở định dạng danh sách.

Cần lưu ý rằng lệnh này yêu cầu bạn phải cài đặt Maven và Java JDK trên hệ thống của mình.

Lọc phụ thuộc

Nếu bạn đang làm việc trên một dự án lớn, bạn có thể gặp khó khăn khi xem và quản lý tất cả các phần phụ thuộc bằng lệnh trên.

May mắn thay, plugin cây phụ thuộc Maven cho phép bạn lọc các phụ thuộc được hiển thị. Điều này có nghĩa là bạn có thể bao gồm hoặc loại trừ bất kỳ sự phụ thuộc nào bạn muốn.

Để chỉ bao gồm một phần phụ thuộc cụ thể, chúng tôi sử dụng tùy chọn Dincludes như được hiển thị trong cú pháp sau:

phụ thuộc mvn : cây - Bao gồm [ Id nhóm ] : [ tạo tác ] : [ loại hình ] : [ phiên bản ]

Hãy nhớ rằng mỗi phân đoạn trong tham số -Dincludes là tùy chọn.

Ví dụ: để hiển thị cách một phụ thuộc cụ thể được sử dụng trong dự án, chúng ta có thể chạy lệnh sau:

phụ thuộc mvn : cây - Bao gồm = ổ cắm junix : ổ cắm junix - cốt lõi

Mã trước đó sẽ trả về:

[ THÔNG TIN ]
[ THÔNG TIN ] ------------------------ < redis. khách hàng : jedi > -------------------------
[ THÔNG TIN ] Xây dựng Jedis 4.3.0 - SNAPSHOT
[ THÔNG TIN ] -------------------------------- [ cái lọ ] ---------------------------------
[ THÔNG TIN ]
[ THÔNG TIN ] --- maven - sự phụ thuộc - cắm vào : 2,8 : cây ( mặc định - cli ) @ jedis ---

Để loại trừ một phần phụ thuộc khỏi cây, chúng ta có thể sử dụng tham số -Dincludes như được hiển thị trong cú pháp bên dưới:

phụ thuộc mvn : cây - Bao gồm = [ Id nhóm ] : [ tạo tác ] : [ loại hình ] : [ phiên bản ]

Ví dụ:

phụ thuộc mvn : cây - Dexcludes = ổ cắm junix : ổ cắm junix - cốt lõi

Điều này sẽ trả về kết quả như hình dưới đây:

Maven Lưu sự phụ thuộc vào tệp

Bạn cũng có thể lưu cây phụ thuộc vào một tệp bằng cách sử dụng tham số -DoutputFile. Một ví dụ đã được biểu diễn ở dưới:

phụ thuộc mvn : cây - DoutputFile = 'dep.tree'

Trong lệnh trước, chúng tôi hướng dẫn Maven tạo một cây phụ thuộc và lưu nó vào một tệp có tên dep.tree.

Đầu ra tệp kết quả được cung cấp bên dưới:

+ - tổ chức. slf4j : slf4j - api : cái lọ : 1.7.32 : biên dịch
+ - tổ chức. apache . commons : commons - pool2 : cái lọ : 2.11.1 : biên dịch
+ - tổ chức. json : json : cái lọ : 20211205 : biên dịch
+ - với. Google . mã số . gson : gson : cái lọ : 2,8,9 : biên dịch
+ - junit : junit : cái lọ : 4.13.2 : kiểm tra
| \ - tổ chức. hamcrest : hamcrest - cốt lõi : cái lọ : 1,3 : kiểm tra
+ - tổ chức. slf4j : slf4j - giản dị : cái lọ : 1.7.32 : kiểm tra
+ - với. kohlschutter . ổ cắm junix : ổ cắm junix - cốt lõi : hiểu : 2.4.0 : kiểm tra
| + - với. kohlschutter . ổ cắm junix : ổ cắm junix - tự nhiên - phổ thông : cái lọ : 2.4.0 : kiểm tra
| \ - với. kohlschutter . ổ cắm junix : ổ cắm junix - phổ thông : cái lọ : 2.4.0 : kiểm tra
\ - tổ chức. mockito : mockito - nội tuyến : cái lọ : 3.12.4 : kiểm tra
\ - tổ chức. mockito : mockito - cốt lõi : cái lọ : 3.12.4 : kiểm tra
+ - mạng lưới. bytebuddy : byte - Bạn bè : cái lọ : 1.11.13 : kiểm tra
+ - mạng lưới. bytebuddy : byte - Bạn bè - đại lý : cái lọ : 1.11.13 : kiểm tra
\ - tổ chức. đã đồng ý : đã đồng ý : cái lọ : 3.2 : kiểm tra

Maven sẽ chỉ bao gồm các phụ thuộc của dự án trong tệp theo cách phân cấp.

Sự kết luận

Bài đăng này đề cập đến cách xem cây phụ thuộc Maven bằng cách sử dụng plugin phụ thuộc Maven.