Thursday, September 27, 2012

Maven dependencies ermitteln

Ich habe heute das Problem gehabt, das ich aus meinen 3 Java Projekten 4 erstellen musste um eine Abstraktionsschicht zwischen die 3 anderen Komponenten zu ziehen.


Refactoring hat super geklappt, nur kam mir am Ende des Refatorings die Frage in den Sinn ob meine *.pom Dateien denn jetzt nicht zuviele Dependencies haben. Die lässt sich ganz einfach mit dem Befehl:
mvn dependency:analyze-only  herausfinden.

E:\dev\XXX\workspace\project>mvn dependency:analyze-only
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building project-core 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.1:analyze-only (default-cli) @ project-core ---
[WARNING] Used undeclared dependencies found:
[WARNING]    org.glassfish.grizzly:grizzly-http-server:jar:2.1.1:compile
[WARNING]    com.sun.jersey:jersey-core:jar:1.8:compile
[WARNING]    org.glassfish:javax.servlet:jar:3.1:compile
[WARNING] Unused declared dependencies found:
[WARNING]    org.hibernate:hibernate-c3p0:jar:4.1.6.Final:compile
[WARNING]    mysql:mysql-connector-java:jar:5.1.13:compile
[WARNING]    org.slf4j:slf4j-log4j12:jar:1.6.6:compile
[WARNING]    wsdl4j:wsdl4j:jar:1.6.2:compile
[WARNING]    commons-discovery:commons-discovery:jar:0.5:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.277s
[INFO] Finished at: Thu Sep 27 17:56:15 CEST 2012
[INFO] Final Memory: 11M/214M
[INFO] ------------------------------------------------------------------------




Dort werden dann die jar's angezeigt die durch andere Module integriert sind aber nicht explizit in der eigenen pom definiert sind und die dependencies, die deklariert wurden, aber nirgendwo im Code benutzt wurden.

Weiterführende Informationen zum Dependencie Plugin gibt es auf:
http://maven.apache.org/plugins/maven-dependency-plugin/