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.tgf
to 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
- clone all kiegroup repos
mkdir kiegroup
cd kiegroup
git clone git@github.com: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
make back
- Run the tool to collect all dependency reports into one file. This will produce
dependency-graph.json
containing all dependency data.
make report
- Build the website that enables you to browse the data in this model
make front
- HTTP serve the
dist
directory and open file index.html in your browser
make run