Wyjaśnienie do tego problemu można znaleźć w official documentation:
rozwlekłe czy uwzględnić pominięte węzły w odcinkach drzewa zależności. Zauważ tę funkcję rzeczywiście wykorzystuje algorytm Maven 2 i może dać błędne wyniki w przypadku korzystania z Maven 3.
Wystarczy popatrzeć na linii 245 TreeMojo.java dla wersji 2.10:
if (verbose)
{
// verbose mode force Maven 2 dependency tree component use
if (! isMaven2x())
{
getLog().warn("Using Maven 2 dependency tree to get verbose output, "
+ "which may be inconsistent with actual Maven 3 resolution");
}
dependencyTreeString =
serializeVerboseDependencyTree(dependencyTreeBuilder.buildDependencyTree(project,
localRepository,
artifactFilter));
}
To rzeczywiście drukuje ostrzeżenie, jeśli maven 2 nie jest używany.
Spójrzmy teraz na linii 243 z TreeMojo.java dla wersji 2.8: rejestrowanie
if (verbose)
{
// verbose mode force Maven 2 dependency tree component use
dependencyTreeString =
serializeVerboseDependencyTree(dependencyTreeBuilder.buildDependencyTree(project,
localRepository,
artifactFilter));
}
Ostrzeżenie nie istnieją, więc:
Czy to zawsze jest tak, że Maven 2 użyto - Wyjście Dverbose, ale dopiero teraz dodali ostrzeżenie?
Tak, ostrzeżenie zostało dodane od wersji 2.8.
Czy mogę to naprawić, czy też tego uniknąć?
Zgaduję, że nie, to znaczy bez ignorowania komunikatów ostrzegawczych lub edycji kodu źródłowego.
Jednak, jak widać, funkcjonalność Maven 2 była już używana w wersji 2.8. Mam nadzieję, że pozbędziesz się go w późniejszych wersjach, kiedy będą migrować dependency:tree -Dverbose
, aby użyć funkcji maven 3.
Czy próbowałeś odtworzyć go na nowszym maven 3.2.5? Nie dostałem ostrzeżenia na temat maven 3.2.5 i dependency-plugin 2.10 – andrii