Die NoPackageCyclesEnforcerRule erkennt automatisch zyklische Abhängigkeiten zwischen Klassen aus verschiedenen Paketen. Diese Paket-Zyklen sollten vermieden werden, da die involvierten Pakete sonst nicht mehr isoliert voneinander betrachtet werden können - und damit geht die mit Paketen angestrebte Modularisierung verloren. Weil es für die automatische Erkennung von Paket-Zyklen noch kein verfügbares Maven-Plugin gab, wurde mit Hilfe von JDepend ein entsprechendes Plugin entwickelt, das durch seine Verfügbarkeit auf Maven Central leicht eingebunden werden kann.
Link: https://github.com/...
Das zweite Plugin namens "Macker" erlaubt es, spezifische Abhängigkeiten zwischen Paketen zu definieren und diese Regeln automatisiert verifizieren zu lassen. Hintergrund war die Erfahrung, dass zu Projektbeginn festgelegte Maßgaben für die Abhängigkeiten zwischen Paketen oftmals nicht eingehalten werden. Gerade solche "Grauzonen-Beziehungen" machen es später schwer, entsprechende Verflechtungen zu erkennen und zu korrigieren. Die Entwicklung an Macker wurde 2003 von den ursprünglichen Autoren eingestellt und daher nun als Fork mit den aktuellen Java-Versionen kompatibel gemacht. Auch dieses Plugin ist für die einfache Verwendung auf Maven Central verfügbar. Link: https://github.com/...
Über Ben Romberg
Ben Romberg ist Software-Entwickler bei der andrena objects ag. Sein besonderes Interesse gilt der qualitätsorientierten Software-Entwicklung mit Hilfe von Test-Driven Development. Zudem ist er der Autor des Contracts for Java Frameworks C4J (Link: http://c4j.vksi.de/).