Zum Beispiel, wenn es Abhängigkeiten gibt:
%Vor% Ich möchte die Abhängigkeit a -> c
entfernen, weil a -> b -> c
vorhanden ist.
Ich weiß, dass es einige starke Abhängigkeiten geben kann, die nicht reduziert werden sollten, aber es ist für diese Frage nicht relevant.
Beispiel:
%Vor%Erwartetes Ergebnis:
%Vor%Ich gehe davon aus, dass Sie die falschen / unnötigen Abhängigkeiten finden wollen, die bereits erfüllt sind, weil Sie sie kostenlos von einer anderen Abhängigkeit erhalten.
Ich kann mir vorstellen, dass Sie das vielleicht machen wollen, um Ihre Poms zu säubern.
Es ist jedoch normalerweise nicht das, was Sie gerne tun würden, da es eine gute Übung ist, explizit anzugeben, was Ihre Abhängigkeiten sind.
Sie wissen nie, ob das Modul b
c
als Abhängigkeit entfernt und damit a
Verwenden Sie mvn dependency:analyze
, um zu zeigen, ob in Ihrem Pom Abhängigkeiten existieren, die Sie nicht benötigen (es kann auch einige übersehene identifizieren, fügen Sie -DoutputXML=true
hinzu, um die fehlenden Einträge anzuzeigen).
Verwenden Sie mvn dependency:tree
, um die Abhängigkeiten anzuzeigen, die derzeit von Ihrem Projekt verwendet werden und wo Maven sie findet. Fügen Sie -Dverbose=true
hinzu, um alle Duplikate und Konflikte anzuzeigen.
Wenn a
direkt von c
abhängt (dh wenn Code in a
Klassen in c
erwähnt), sollte der Pom dies widerspiegeln. Wenn a
nur direkt von b
abhängt, können Sie die Abhängigkeit c
sicher von der Datei pom.xml von a
entfernen. Die obigen Befehle sollten es Ihnen ermöglichen zu bestimmen, was die nächste geeignete Aktion ist.
Bearbeiten: Okay, Sie haben Ihre Frage aktualisiert. Hier ist, wie Sie es tun:
a
, führen Sie mvn dependency:tree -Dverbose=true
aus. Dies zeigt Ihnen eine vollständige Baumstruktur aller Abhängigkeiten, die Maven für Ihr Projekt in Betracht zieht. Oder suchen Sie nach einer Möglichkeit, dies automatisch zu tun? Ich glaube nicht, dass es einen automatisierten Weg gibt, es sei denn, du schreibst selbst einen, denn was du versuchst zu tun, ist eine BAD IDEA . Sie sagen den Leuten, dass ihre Einwände für Ihre Frage "irrelevant" sind, aber Tatsache ist, dass Ihre Frage ist wie "Wie kann ich Maven verwenden, um es schwieriger zu machen, Maven zu benutzen?"
Es gibt keinen guten Grund, warum Sie das tun möchten. Wenn Sie denken, dass es einen guten Grund gibt, dann müssen Sie versuchen, dies zu tun, um ein Ergebnis zu erzielen. Sie sollten um Hilfe mit dem gewünschten Ergebnis bitten, weil Ihr Plan schlecht ist.
Tags und Links dependencies maven-2 dependency-management