2013-07-15 47 views
24

Tôi có một dự án mà tôi đang sử dụng sl4j với log4j. Gần đây tôi đã thêm một vài phụ thuộc mới vào dự án của tôi và một trong những phụ thuộc mới này mà tôi đã thêm vào bao gồm một sự phụ thuộc chuyển tiếp tới logback-classic, bao gồm một ràng buộc khác cho sj4j.Xác định nguồn phụ thuộc transitive

Tôi muốn thoát khỏi logback, nhưng tôi không có đầu mối nào trong số các phụ thuộc trực tiếp của tôi đã thêm phụ thuộc chuyển tiếp để tôi có thể loại trừ nó.

Trong maven tôi biết làm thế nào để có được toàn bộ đồ thị của phụ thuộc để xác định đó là nguồn gốc của một phụ thuộc transitive, nhưng tôi không có đầu mối làm thế nào để làm điều này với gradle.

Có ai biết làm thế nào để có được sự phụ thuộc nguồn của một phụ thuộc chuyển tiếp với gradle?

Trả lời

37

Để hiển thị toàn bộ cây phụ thuộc cho từng đường dẫn lớp, hãy sử dụng gradle dependencies. Nếu bạn chỉ quan tâm đến một đường dẫn lớp cụ thể, hãy sử dụng (nói) gradle dependencies --configuration compile. Sử dụng tùy chọn -p để chạy trên một tiểu dự án.

Để hiển thị ai kéo phụ thuộc cụ thể vào một đường dẫn lớp cụ thể và cách mọi xung đột phiên bản được giải quyết, hãy sử dụng (nói) gradle dependencyInsight --dependency logback --configuration compile.

Lưu ý rằng bạn cũng có thể loại trừ phụ thuộc từ toàn bộ đường dẫn lớp (hoặc nhiều). Thông thường, điều này đáng tin cậy hơn là loại trừ một phụ thuộc chuyển tiếp cụ thể. Ví dụ:

configurations.all*.exclude module: "logback-classic" 
Các vấn đề liên quan