2015-10-06 10 views
7

Gdy mam zależność wymienioną więcej niż jeden raz w moim drzewie zależności, nawet jeśli wszystkie wersje tej zależności są takie same, Eclipse powie (w zakładce Hierarchia zależności w POM), że wszystkie oprócz jednego są "(pominięto w przypadku konfliktu z XXX) ". Identyfikator grupy, identyfikator artefaktu i wersja będą takie same.Dlaczego Eclipse Maven mówi, że zależności w tej samej wersji są sprzeczne?

Oto prosty przykład z losowo wybraną zależnością. Zwróć uwagę na maven-model i maven-artefact.

maven-core dependency conflict same versions

Używam Eclipse Mars (4.5.0)

To nie wydaje się mieć żadnego wpływu na nic, oprócz mylących komunikatów w interfejsie użytkownika. To dość denerwujące, gdy widzisz "pominięte w konflikcie ..." wszędzie, szczególnie gdy chcę zobaczyć prawdziwe konflikty.

Odpowiedz

8

Zakładka "Hierarchia zależności" Eclipse jest wypełniona wtyczką M2Eclipse. I, niestety, wygląda na to, że jest to zakodowane wewnątrz wtyczki M2Eclipse source code. Niezależnie od przyczyny pominięcia zależności (duplikat, konflikt wersji ...) wtyczka M2Eclipse doda etykietę "pominięty w przypadku konfliktu z".

Należy zauważyć, że tak nie jest z celem tree celu maven-dependency-plugin, z którego ta zakładka naśladuje wyjście. Domyślnie polecenie mvn dependency:tree nie wyświetla zależności, które zostały pominięte. Jeśli flaga verbose jest ustawiona na true, wynik wyświetli każdą zależność, która została pominięta dla: bycia duplikatem innej; sprzeczne z wersją i/lub zasięgiem innej osoby; i wprowadzenie cyklu do drzewa zależności.

Nie mogłem znaleźć błędu, więc mógłbyś złożyć prośbę o ulepszenie, through their Bugzilla, aby zapytać, czy wtyczka bardziej pasuje do wyjścia dependency:tree (na przykład pokazując prawdziwy powód pominięcia zależności, zamiast bieżące ustawienie domyślne) i dodanie opcji przełączania między trybem szczegółowym a nie pełnym.

+1

Ah, darn. Dzięki za linki, a także za pokazanie mi zależności: cel drzewa. BTW jeśli ktoś jest ciekawy, widzę, gdzie zmienił kod (zapomniałem wspomnieć, że nie zrobił tego w poprzedniej wersji Eclipse, dlatego spodziewałem się, że będzie działać inaczej): https://github.com/eclipse/m2e-core/commit/85527e1eb1638654d8f33a7106900ef9d1158bc2 # diff-96f1c3968edb48388ea2673b2dd6e8e4L809, wygląda na to, że usunęli kontrolę wersji równej wraz z wieloma innymi zmianami, aby poprawić wydajność. – tobii

+0

@tobii Nice find! – Tunaki

Powiązane problemy