Ich habe ein großes Maven-Projekt mit vielen Modulen und vielen pom.xml
Dateien. Das Projekt hat sich geändert und ich vermute, dass die POMs einige unnötige Abhängigkeiten enthalten. Gibt es einen Befehl, der nicht verwendete Abhängigkeiten von einem POM entfernt?
277
Antworten:
Das Maven Dependency Plugin wird helfen, insbesondere das
dependency:analyze
Ziel:Eine weitere Möglichkeit zur Bereinigung ist der Abhängigkeitskonvergenzbericht aus dem Maven Project Info Reports Plugin .
quelle
ignoreNonCompile
Option auf true gesetzt werden.Sie können verwenden
dependency:analyze -DignoreNonCompile
Dadurch wird eine Liste von Druck verwendet nicht deklariert und nicht verwendeten deklarierten Abhängigkeiten (zu ignorieren
runtime
/provided
/test
/system
Bereiche für nicht genutzte Abhängigkeitsanalyse.)Seien Sie vorsichtig, wenn Sie dies verwenden. Einige Bibliotheken, die bei verwendet
runtime
werden, gelten als nicht verwendet!Weitere Details finden Sie unter diesem Link
quelle
Wie bereits erwähnt, können Sie die Abhängigkeit verwenden: Ziel analysieren, um herauszufinden, welche Abhängigkeiten verwendet und deklariert, verwendet und nicht deklariert oder nicht verwendet und deklariert werden. Möglicherweise ist auch dependency: analyse-dep-mgt hilfreich, um in Ihrem Abschnitt dependencyManagement nach Nichtübereinstimmungen zu suchen.
Sie können unerwünschte direkte Abhängigkeiten einfach aus Ihrem POM entfernen. Wenn sie jedoch von Jars von Drittanbietern eingeführt werden, können Sie die
<exclusions>
Tags in einer Abhängigkeit verwenden, um die Jars von Drittanbietern auszuschließen ( Einzelheiten und einige Erläuterungen finden Sie im Abschnitt mit dem Titel Abhängigkeitsausschlüsse ). . Hier ist ein Beispiel, das die Commons-Protokollierung von der Spring-Abhängigkeit ausschließt:quelle
Haben Sie sich das Maven Dependency Plugin angesehen ? Dadurch werden keine Inhalte für Sie entfernt, es stehen jedoch Tools zur Verfügung, mit denen Sie die Analyse selbst durchführen können. Ich denke besonders an
quelle
Ich hatte ein ähnliches Problem und beschloss, ein Skript zu schreiben, das Abhängigkeiten für mich beseitigt. Damit habe ich ziemlich leicht mehr als die Hälfte der Abhängigkeiten beseitigt.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
quelle
mvn dependency:analyze
. Es wird nur versucht, jede Abhängigkeit zu entfernen und zu prüfen, ob diesmvn install
funktioniert.