classPluginPhase extends PluginComponent with GraphAnalysis
- Break dependency graph into strongly connected components
- Turn acyclic packages into virtual "files" in the dependency graph, as
aggregates of all the files within them
- Any strongly connected component which includes an acyclic.file or
acyclic.pkg is a failure
Pick an arbitrary cycle and report it
- Don't report more than one cycle per file/pkg, to avoid excessive spam
- Break dependency graph into strongly connected components - Turn acyclic packages into virtual "files" in the dependency graph, as aggregates of all the files within them - Any strongly connected component which includes an acyclic.file or acyclic.pkg is a failure