Java

Möglichkeiten um die Maven Abhängigkeit grafisch anzuzeigen.

Um in einem Projekt als technisch verantwortlicher Entwickler den Überblick über das Maven Projekt zu behalten ist es nötig die Dependencies zu verstehen, zu kontrollieren und zu überwachen.

Da man bei größeren Projekten verschiedene Module bzw. Subprojekte hat ist es manchmal nicht einfach diesen Überblick zu bewahren. Deshalb sollte man es sich grafisch klar machen wie die verschiedenen Module miteinander interagieren, um darauf zu achten, dass man sich keine Zyklen sowie unnötige Relationen ins Projekt holt.

Nachdem ich es beim ersten Mal mit Hilfe eines Flipcharts selbst dargestellt habe und die verschiedenen POM Dateien (“Project Object Model”) realisiert habe, dachte ich mir, dass dieses Problem doch schon einmal jemand gelöst haben muss. Dadurch könnte die CI (“Continous Integration”) es übernehmen den graphischen Überblick zu erstellen, damit man immer eine Übersicht darüber hat wie sich das Gesamtbild entwickelt.

Ich habe verschiedene Ansätze gefunden, wie man dieses Problem angehen kann:

– Maven Plugins
-> Maven Overview (https://code.google.com/p/maven-overview-plugin)
-> Maven Graph (http://mvnplugins.fusesource.org/maven/1.4/maven-graph-plugin/index.html)
-> … (http://books.sonatype.com/m2eclipse-book/reference/dependencies-sect-analyze-depend.html#fig-dependencies-pom-editor-graph)

– Standalone Apps
-> POM-Parser (https://github.com/roclas/pomParser)

Als erstes habe ich mal das „Maven Overview“ Plugin integriert.

Dafür musste ich folgende Plugin Eintrag ins POM-XML einbetten:

<plugin>
    <groupId>com.googlecode.maven-overview-plugin</groupId>
    <artifactId>maven-overview-plugin</artifactId>
    <version>RELEASE</version>
	<configuration>
		<width>1200</width>
		<height>1200</height>				
        <includes>com.company.product</includes>
		<exclusions>
			<exclusion>
				<scope>test</scope>
			</exclusion>
		</exclusions>                    
        <maxDepth>1</maxDepth>
		<scopes>
        	<scope>compile</scope>
        	<scope>runtime</scope>
        </scopes>  
    </configuration>		        
</plugin>

(1) http://devinthelifeofme.blogspot.de/2009/05/using-maven-overview-plugin.html

Im zweiten Schritt nutzte ich das Standalone Programm.

Dieses musste ich einfach nur auf der Konsole (nachdem „mvn clean install“ ausgeführt wurde) mit folgendem Befehl ausführen:

java -jar pom_parser-X.X.jar _origindir_ _destdir_

Beide Ansätze lieferten tolle Ergebnisse und ich werde es in Zukunft weiterhin benutzen um den Überblick zu behalten.

Welche der Lösungen die bessere ist solltet ihr ausprobieren, indem ihr beide einmal benutzt und schaut welche euren Anforderungen am Nächsten kommt. Dafür könnt ihr entweder zu einem kleinen Meeting einladen, in dem ihr euch für eine gemeinsame Lösung entscheidet oder ihr erstellt eine Entscheidungsmatrix.

Ich bin für Fragen, Hinweise, Verbesserungsvorschläge und sonstige Kommentare immer offen und freue mich darüber.

Standard

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert