Tôi vừa trải qua một trường hợp phụ thuộc trực tiếp vào dự án maven của tôi có hai phiên bản khác nhau của một phụ thuộc transitive cụ thể.Maven - Phát hiện nhiều phiên bản của cùng một phụ thuộc
Trong trường hợp đặc biệt của tôi, tôi đã phụ thuộc trực tiếp vào như sau:
<dependency>
<groupId>org.jclouds.driver</groupId>
<artifactId>jclouds-sshj</artifactId>
<version>${jclouds.version}</version>
</dependency>
và
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-jersey</artifactId>
<version>${mule.version}</version>
</dependency>
Cả hai phụ thuộc đã có một (sâu) phụ thuộc bắc cầu vào com.sun.jersey: jersey -core, nhưng với các phiên bản khác nhau cho mỗi. Maven đã không thất bại về điều này hoặc thậm chí cảnh báo (hoặc nếu nó đã làm, tôi không bao giờ nhìn thấy nó!) Rằng một điều như vậy đã xảy ra ... và như vậy tôi không bao giờ nhận thấy nó cho đến khi gỡ lỗi một vấn đề đã xảy ra khi phiên bản của jersey- cốt lõi đưa vào bởi sự phụ thuộc của jclouds gây ra một số thứ để phá vỡ.
Có plugin maven hay một số công cụ tồn tại khác sẽ phát hiện kiểu phụ thuộc quá tải sâu này và ít nhất cảnh báo người dùng (hoặc không thực thi maven) nếu phát hiện va chạm ... ngay cả khi hành vi maven mặc định là chỉ cần chọn phiên bản đầu tiên xuất hiện khi giải quyết các phụ thuộc?
điều này dường như chính xác những gì tôi đang tìm kiếm. Tôi không nghĩ rằng để kiểm tra các plugin thực thi cho việc này. – whaley