Skip to content
Tools to enable analysis of maven dependencies across multi-repo maven project(s).
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend
docs
frontend/collect-deps
scripts
.gitignore
ChangeLog.md
LICENSE
Makefile
README.md
Setup.hs
kiegroup-dependencies.cabal
stack.yaml

README.md

Kiegroup dependencies

Tools to enable analysis of maven dependencies across multi-repo maven project(s).

TODOs

  • 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

How to use it

  1. 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
  1. 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
  1. 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.

  2. Build the tool

make back
  1. Run the tool to collect all dependency reports into one file. This will produce dependency-graph.json containing all dependency data.
make report
  1. Build the website that enables you to browse the data in this model
make front
  1. HTTP serve the dist directory and open file index.html in your browser
make run
You can’t perform that action at this time.