2015-10-06 19 views
7

Khi tôi có một phụ thuộc được liệt kê nhiều hơn một lần trong cây phụ thuộc của tôi, ngay cả khi tất cả các phiên bản của phụ thuộc đó đều giống nhau, Eclipse sẽ nói (trong tab Phân cấp phụ thuộc của POM) mà tất cả trừ một "bị bỏ qua vì xung đột với XXX) ". ID nhóm, ID tạo tác và phiên bản sẽ giống nhau.Tại sao Eclipse Maven nói rằng các phụ thuộc của cùng một phiên bản là mâu thuẫn?

Đây là một ví dụ đơn giản với sự phụ thuộc được chọn ngẫu nhiên. Chú ý maven-model và maven-artifact.

maven-core dependency conflict same versions

Tôi đang sử dụng Eclipse Mars (4.5.0)

này dường như không có bất kỳ ảnh hưởng đến bất cứ điều gì, bên cạnh những thông điệp sai lầm trong giao diện người dùng. Nó chỉ là khá khó chịu để xem "bỏ qua xung đột ..." trên tất cả các nơi, đặc biệt là nếu tôi muốn nhìn thấy những xung đột thực sự.

Trả lời

8

Tab "Phân cấp phụ thuộc" của Eclipse được điền bằng plugin M2Eclipse. Và, thật không may, có vẻ như điều này được mã hóa cứng bên trong plugin M2Eclipse source code. Dù lý do phụ thuộc bị bỏ qua (trùng lặp, phiên bản xung đột ...), plugin M2Eclipse sẽ thêm nhãn "bỏ qua xung đột với".

Lưu ý rằng đây không phải là trường hợp của mục tiêu tree của maven-dependency-plugin, từ đó tab này bắt chước đầu ra. Theo mặc định, lệnh mvn dependency:tree sẽ không hiển thị các phụ thuộc bị bỏ qua. Nếu cờ verbose được đặt thành true, thì đầu ra sẽ hiển thị mọi phụ thuộc đã bị bỏ qua vì: trùng lặp với nhau; mâu thuẫn với phiên bản và/hoặc phạm vi của người khác; và giới thiệu một chu trình vào cây phụ thuộc.

Tôi không thể tìm thấy lỗi cho việc này để bạn có thể gửi yêu cầu nâng cao, through their Bugzilla, để yêu cầu plugin tuân thủ nhiều hơn với đầu ra của dependency:tree (ví dụ: hiển thị lý do thực sự mà phụ thuộc bị bỏ qua thay vì mặc định hiện tại) và thêm tùy chọn để chuyển đổi giữa chế độ tiết và không tiết.

+1

Ah, darn. Cảm ơn các liên kết, và cũng cho tôi thấy sự phụ thuộc: mục tiêu cây. BTW nếu có ai tò mò, tôi thấy nơi họ thay đổi mã (Tôi quên đề cập rằng nó đã không làm điều này với một phiên bản trước của Eclipse, đó là lý do tại sao tôi mong đợi nó để hành động khác nhau): https://github.com/eclipse/m2e-core/commit/85527e1eb1638654d8f33a7106900ef9d1158bc2 # diff-96f1c3968edb48388ea2673b2dd6e8e4L809, có vẻ như họ đã xóa kiểm tra phiên bản bằng nhau cùng với nhiều thay đổi khác để cải thiện hiệu suất. – tobii

+0

@tobii Nice find! – Tunaki

Các vấn đề liên quan