2017-01-18 26 views
10

Câu hỏi này là để làm rõ chính xác phụ thuộc transitive transitive là gì và cách hoạt động ở cấp độ rất cao trong Maven.Phụ thuộc Maven chuyển tiếp là gì?

định nghĩa của tôi: trong một cây phụ thuộc như A -> B -> C, C là một sự phụ thuộc bắc cầu cho A. Giả sử B có phạm vi biên dịch trong phạm vi A.

Nếu C có phạm vi biên dịch trong B, sau đó tuyên bố B như phụ thuộc của Một đủ để xây dựng Một với Maven. Nhưng nếu C có phạm vi cung cấp trong B sau đó, khi xây dựng Maven Một, tòa nhà sẽ không tự động biên dịch Một chống C trừ Một tuyên bố C số phụ thuộc của nó.

Điều này có đúng không?

Trả lời

12

Giả định của bạn là chính xác.

Có hai loại Maven phụ thuộc:

  • trực tiếp: Đây là những phụ thuộc được xác định trong tập tin pom.xml của bạn dưới phần <dependencies/>.

  • Transitive: Đây là những phụ thuộc phụ thuộc vào phụ thuộc trực tiếp của bạn.

Dependencies với provided phạm vi có nghĩa là để:

  • Dù bị loại khỏi artifact thức (ví dụ, đối với war tập tin mà bạn không muốn bao gồm servlet-api, servlet-jsp, vv)
  • Hoặc ghi đè lên - nơi dự án kế thừa các giá trị này xác định phiên bản và/hoặc ghi đè phạm vi
Các vấn đề liên quan