Po prostu przyzwyczaiłem się do tego, że w moich projektach nie używam żadnych niezadeklarowanych lub nieużywanych deklarowanych zależności. Chociaż bardzo trudno jest śledzić nieużywane zadeklarowane zależności środowiska wykonawczego/testowego, które są wymienione w zależności: analiza ... Wystarczy napisać do nich komentarze w pom.xml lub w inny sposób zarządzać nimi, aby wiedzieć, że są one potrzebne do testowania lub wykonywania.W jaki sposób Maven rozwiązuje konflikt wersji przechodniowych? nearest-wins strategy
Ale sposób rozwiązania konfliktu wersji wciąż jest dla mnie niejasny. Odnośnie przechodnich zależności.
Jak działa strategia najbliższej wygranej? Kiedy jedna wersja jest używana w innej wersji?
Jeśli zadeklarować Używany zależność niezgłoszonej z numerem wersji - zawsze wygrywa
Jeśli nie określa wersję zależność wprost, Maven nie można rozwiązać każdą wersją konfliktów, które mogą powstać w odniesieniu do tego uzależnienia (dziwne, ale napisany here)
Jeśli nie deklarują nierejestrowana stosować zależność, to wybiera przechodniej zależności od najbliższego poziomu (strategia Najbliższe-wins) i czy konflikt jest na tym samym poziomie, to jakoś decyduje b etween wersja A nad wersją B ... Być może pierwsza, która pojawia się podczas przetwarzania zależności, wygrywa
Jeśli chcesz zdefiniować zależność dla testu, podaj ją również za pomocą zakresu, który działa również w środowisku wykonawczym. – khmarbaise