Explore and diff Gradle dependency trees to quickly see what changed — what was added, removed, or updated — and why. Runs entirely in your browser, works offline, and never sends your data to any server.
Live Demo: https://tigerxy.github.io/gradle-dep-tree-explorer/
Download (single HTML): https://github.com/tigerxy/gradle-dep-tree-explorer/releases/latest
- Input: Paste or upload the "old" and "current" Gradle dependency trees; includes one‑click sample data and clear/reset.
- Diff Tree: Collapsible tree with added/removed/changed markers, favorites, parent jump, and text search with highlighting.
- Updates View: Shows forced updates or all dependency updates, with paths to the root and deep-link back to the Diff Tree.
- Graph View: Interactive D3 graph with expand/collapse, pan/zoom, fit‑to‑view, and jump back to the Diff Tree node.
- Single‑file build: Produces a standalone
index.htmlthat works offline (all JS/CSS/assets inlined). - Client‑side only: Hash‑based routing; nothing is sent over the network.
- No data leaves your machine: All parsing, diffing, and visualization happen entirely in the browser.
- Works offline: The single‑file build runs without internet access.
- No telemetry: No analytics, tracking, or external calls — respects your privacy by design.
Compare two Gradle dependency trees to quickly spot changes and their impact. Useful when:
- Upgrading Gradle: See how the dependency resolution changes across Gradle versions.
- Bumping libraries/plugins: Verify direct or transitive version updates and detect regressions.
- Changing dependency constraints: Inspect effects of BOMs, version catalogs, or forced versions.
- Resolving conflicts: Identify where version conflicts originate and which path introduced them.
- Reducing bloat: Find newly added heavy or duplicate transitive dependencies.
- Security fixes: Confirm vulnerable artifacts were removed or upgraded in the new tree.
- Repro/debug builds: Compare CI vs. local or branch vs. main to understand differences.
- Install dependencies:
npm install - Start dev server:
npm run dev(open the printed local URL) - Build for production:
npm run buildand preview withnpm run preview - Run tests:
npm run test
- The live demo is published at https://tigerxy.github.io/gradle-dep-tree-explorer/
- Deploys happen when a version tag is pushed (e.g.
v0.1.0). One workflow builds once, then:- Deploys
dist/to GitHub Pages - Creates a GitHub Release with assets:
gradle-tree-explorer-vX.Y.Z.html— single‑file appgradle-tree-explorer-vX.Y.Z.zip— zippeddist/contents
- Deploys
- On push/PR to
main: runs tests, checks formatting (Prettier), and lints (ESLint). - On tags
v*: builds, deploys Pages, and publishes the Release with download artifacts.
- From the module you care about (example for Android app release runtime):
./gradlew :app:dependencies --configuration releaseRuntimeClasspath --refresh-dependencies > deps.txt - For diffs, generate two files (before/after your change) and paste/upload them in the app.
- Bulma styles are imported via
src/app.css. - TypeScript types live in
src/lib/types.ts; all modules and Svelte components uselang="ts". - D3 is imported as a module in
src/pages/GraphPage.svelte. - Favorites persist in
localStorageunder the keydepFavorites. - The app uses hash-based routing (no backend required).
MIT License. You are free to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software, subject to the terms in LICENSE. Provided "as is", without warranty of any kind. See LICENSE for full text.
Contributions are welcome! Please open issues for bugs and feature requests, and submit PRs for fixes or improvements.
- Run
npm ci && npm run format:check && npm test && npm run lintbefore submitting. - Keep changes focused; add tests when reasonable.
- If proposing UX changes, screenshots or short clips help a lot.