Tools to enable analysis of maven dependencies across multi-repo maven project(s).
- Collect results of
mvn-all.sh dependency:tree -DoutputType=tgf -DoutputFile=deps.tgfto a single file
- Parse and validate resulting TGF reports (split groupId:artifactId:packaging[:qualifier]:version[:scope])
- Come up with a convenient representation of TFG data for easy consumption by front end
- For each artifact calculate number of direct/transitive dependencies
- For each artifact calculate number of direct/transitive reverse dependencies
- Show dependency tree of each artifact
- Show reverse dependency tree of each artifact
- Distinguish between internal and 3rd party dependencies (based on groupId)
- Add breadcrumb showing "Home >> groupId >> artifactId >> version" for easier navigation
- Show scope of each dependency in the dependency trees
- Dependency convergence report (groupId:artifactId with multiple different versions)
- Visualize module structure for each repo
- Make dependency tree view have configurable depth
- Include results of dependency:analyze-report
- Add link from each kiegroup artifact to it's associated github repository
How to use it
- clone all kiegroup repos
mkdir kiegroup cd kiegroup git clone firstname.lastname@example.org:kiegroup/droolsjbpm-build-bootstrap.git ./droolsjbpm-build-bootstrap/script/git-clone-others.sh
- Run maven to produce dependency tree reports. This will produce several hundreds maven module dependency reports (1 per maven module).
./droolsjbpm-build-bootstrap/script/mvn-all.sh \ dependency:tree -DoutputType=tgf -DoutputFile=deps.tgf -DfullProfile
This tool uses Haskell script to collect and deduplicate all individual dependency trees into one huge dependency graph. You need to install stack to run it.
Build the tool
- Run the tool to collect all dependency reports into one file. This will produce
dependency-graph.jsoncontaining all dependency data.
- Build the website that enables you to browse the data in this model
- HTTP serve the
distdirectory and open file index.html in your browser