2015-10-06 9 views
7

Wenn eine Abhängigkeit mehr als einmal in meinem Abhängigkeitsbaum aufgeführt ist, selbst wenn alle Versionen dieser Abhängigkeit identisch sind, sagt Eclipse (in der Registerkarte Abhängigkeits-Hierarchie eines POM), dass alle bis auf eins "sind mit XXX) ". Die Gruppen-ID, die Artefakt-ID und die Version stimmen alle überein.Warum sagt Eclipse Maven, dass Abhängigkeiten der gleichen Version widersprüchlich sind?

Hier ist ein einfaches Beispiel mit einer zufällig gewählten Abhängigkeit. Beachte Maven-Modell und Maven-Artefakt.

maven-core dependency conflict same versions

Ich bin mit Eclipse-Mars (4.5.0)

Dies scheint nicht auf irgendetwas beeinflusst zu haben, neben den irreführenden Nachrichten in der Benutzeroberfläche. Es ist einfach ziemlich nervig zu sehen, dass "aus Versehen konfliktfrei" überall zu sehen ist, besonders wenn ich die wahren Konflikte sehen will.

Antwort

8

Die Registerkarte "Abhängigkeitshierarchie" von Eclipse wird vom M2Eclipse-Plugin ausgefüllt. Und leider scheint dies im M2Eclipse-Plugin source code fest codiert zu sein. Was auch immer der Grund dafür ist, dass eine Abhängigkeit ausgelassen wurde (Duplikat, Versionskonflikt ...), das M2Eclipse-Plugin fügt die Bezeichnung "ausgelassen für Konflikt mit" hinzu.

Beachten Sie, dass dies nicht der Fall tree Ziel der maven-dependency-plugin ist, von denen diese Registerkarte die Ausgabe nachahmt. Standardmäßig zeigt der Befehl mvn dependency:tree keine Abhängigkeiten, die weggelassen wurden. Wenn das Flag verbose auf true gesetzt ist, zeigt die Ausgabe alle Abhängigkeiten an, die weggelassen wurden: ein Duplikat eines anderen zu sein; mit der Version und/oder dem Umfang eines anderen kollidieren; und Einführen eines Zyklus in den Abhängigkeitsbaum.

ich nicht, wurde ein Bug dafür so könnte man vielleicht einen Verbesserungsvorschlag einreichen, through their Bugzilla, zu fragen, dass das Plugin hält sich mehr mit dem Ausgang des dependency:tree (zum Beispiel zeigt den wahren Grund eine Abhängigkeit weggelassen finden konnten, statt der aktuelle Standard) und eine Option hinzuzufügen, um zwischen dem ausführlichen und nicht dem ausführlichen Modus zu wechseln.

+1

Ah, verdammt. Danke für die Links und auch um mir die Abhängigkeit zu zeigen: Baumziel. Übrigens, wenn jemand neugierig ist, sehe ich, wo sie den Code geändert haben (ich habe vergessen zu erwähnen, dass es das mit einer früheren Version von Eclipse nicht getan hat, weshalb ich erwartet habe, dass es sich anders verhält): https://github.com/eclipse/m2e-core/commit/85527e1eb1638654d8f33a7106900ef9d1158bc2 # diff-96f1c3968edb48388ea2673b2dd6e8e4L809, sieht so aus, als ob sie die gleiche Versionsprüfung zusammen mit vielen anderen Änderungen entfernt haben, um die Leistung zu verbessern. – tobii

+0

@tobii Schöne finden! – Tunaki