Skip to content

chschmitz/cycles-maven-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cycles-maven-plugin

The Maven Cycles Plugin detects package dependency cycles and suggests dependencies that should be removed to get back to an acyclic package graph.

The plugin tries to suggest those dependencies for removal that go from stable to unstable packages, i.e., from packages with a high in-degree to those with a high out-degree.

Example Usage

mvn cycles:cycles

outputs the package cycles and suggests dependencies that should be removed to break those cycles within a Java project. This is the output when invoking on a version of the plugin itself that has a cycle added to it for demonstration purposes:

[INFO] --- cycles-maven-plugin:1.1.0-SNAPSHOT:cycles (default-cli) @ cycles-maven-plugin ---
=== Cycle / strongly connected component (2 packages, 2 dependencies)

= Packages
c.u.m.c.analyzer
c.u.m.c.graph

= Dependencies
c.u.m.c.analyzer -> c.u.m.c.graph [11]
c.u.m.c.graph -> c.u.m.c.analyzer [1]

= Cycle-breaking dependencies
c.u.m.c.graph -> c.u.m.c.analyzer [1]

Other features include:

  • Output of cycles in Graphviz format for visualization:

    Cycles graph

  • Aggregation of packages to a certain depth

  • Optional inclusion of test classes

  • Output of the class-level dependencies

Refer to the Maven site documentation for more details.

About

Maven Cycles Plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages