Skip to main content

A simple command line tool to visualize the dependency tree of a Maven project in a graphical format.

Project description

Maven Dependency Tree Visualizer

PyPI version Python License Downloads CI Code style: ruff

A simple command-line tool to visualize the dependency tree of a Maven project in a graphical and interactive format.

This tool was born out of the frustration of not being able to easily visualize the dependency tree of a Maven project. The mvn dependency:tree command is great, but the output can be hard to read, especially for large projects. This tool aims to solve that problem by providing a simple way to generate an interactive diagram or a structured JSON output of the dependency tree.

Table of Contents

Installation

Install the package from PyPI:

pip install mvn-tree-visualizer

Features

  • 🌐 Multiple Output Formats:
    • HTML: Generates an interactive HTML diagram of your dependency tree using Mermaid.js.
    • JSON: Creates a structured JSON representation of the dependency tree, perfect for scripting or integration with other tools.
  • 🎨 Theme System: Choose from 2 built-in themes (minimal, dark) for clean and consistent diagram styling.
  • 🔄 Watch Mode: Automatically regenerates diagrams when Maven dependency files change using the --watch flag.
  • 📋 Version Display: Toggle dependency versions in outputs with --show-versions
  • 💾 Enhanced Downloads: SVG and PNG export directly from browser
  • 📂 Smart File Handling: Automatically finds and merges multiple maven_dependency_file files from different subdirectories.
  • 🎯 Color Coding: Visual distinction between root, intermediate, and leaf dependencies

How to Use

Step 1: Generate the dependency file

Run the following command in your terminal at the root of your Maven project. This will generate a file named maven_dependency_file in each module's target directory.

mvn dependency:tree -DoutputFile=maven_dependency_file -DappendOutput=true

💡 Tip: You can add other options like -Dincludes="org.example" to filter the dependencies.

Step 2: Visualize the dependency tree

Use the mvn-tree-visualizer command to generate the diagram.

HTML Output (Interactive Diagram)

mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" --format html

JSON Output (Structured Data)

mvn-tree-visualizer --filename "maven_dependency_file" --output "dependencies.json" --format json

With Version Information

mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" --show-versions

With Custom Themes

# Dark theme for low-light environments  
mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" --theme dark

# Default minimal theme (clean monospace design)
mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html"

JSON Output with Versions

mvn-tree-visualizer --filename "maven_dependency_file" --output "dependencies.json" --format json --show-versions

Watch Mode (Auto-regeneration)

mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" --watch

Quiet Mode (For Automation/Scripts)

# Only show errors, suppress success messages
mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" --quiet

# Short form also available
mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" -q

Auto-Open in Browser

# Automatically open the generated HTML diagram in your default browser
mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" --open

Timestamped Output Files

# Generate files with timestamps (e.g., diagram_20250813_143022.html)
mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" --timestamp-output

# Combine with auto-open for immediate viewing
mvn-tree-visualizer --filename "maven_dependency_file" --output "diagram.html" --timestamp-output --open

💡 Tip: In watch mode, the tool will monitor for changes to your Maven dependency files and automatically regenerate the diagram. Perfect for development workflows! Press Ctrl+C to stop watching.

Step 3: View the output

  • HTML: Open the generated diagram.html file in your web browser to view the interactive dependency tree.
  • JSON: Use the dependencies.json file in your scripts or other tools.

Examples

Check out the examples/ directory for sample Maven dependency files and their outputs:

  • Simple Project: Basic Spring Boot application with common dependencies
  • Complex Project: Realistic microservice with comprehensive dependencies

Each example includes:

  • Sample Maven dependency tree file
  • Generated HTML and JSON outputs
  • Usage instructions

Options

Option Description Default
--filename The name of the file containing the Maven dependency tree maven_dependency_file
--output The name of the output file diagram.html
--format The output format (html or json) html
--theme Theme for HTML diagrams (minimal, dark) minimal
--show-versions Show dependency versions in the diagram False
--watch Watch for file changes and auto-regenerate diagram False
--directory The directory to scan for the Maven dependency file(s) current directory
--keep-tree Keep the intermediate dependency_tree.txt file False
--quiet, -q Suppress all console output except errors False
--open Automatically open generated HTML files in default browser False
--timestamp-output Add timestamp to output filename (e.g., diagram-2025-08-13-203045.html) False
--version, -v Show the current version and exit -
--help Show the help message and exit -

Theme Options

  • minimal: Clean monospace design with simple black borders (default)
  • dark: Same minimal styling but with white text on black background

📖 See the complete Theme Documentation for detailed information about themes and interactive features.

Performance

For Large Projects:

  • Consider filtering dependencies at the Maven level using -Dincludes or -Dexcludes parameters
  • The tool can handle projects with hundreds of dependencies efficiently

Memory Usage:

  • Memory usage scales with the number of dependencies
  • Typical projects (50-200 dependencies) use minimal memory
  • Very large projects (1000+ dependencies) may require more memory

Troubleshooting

Common Issues

"No dependency files found"

  • The tool now provides detailed guidance including:
    • Exact directory searched and filename expected
    • Maven commands to generate dependency files
    • Instructions to ensure you're in a directory with pom.xml

"Empty or invalid output"

  • Enhanced error messages now include:
    • Specific error details (encoding, permissions, empty files)
    • Validation of file content and format
    • Suggestions for fixing common parsing issues

"Browser doesn't display the diagram"

  • Ensure you're opening the HTML file in a modern browser
  • Check browser console for JavaScript errors
  • Try a different browser (Chrome, Firefox, Safari)

"Permission denied errors"

  • Improved diagnostics for:
    • Directory read/write permissions
    • File access issues
    • Output directory creation problems

Getting Help

  • Check the examples directory for working samples
  • Review the issues page
  • Create a new issue with your Maven dependency file sample

Contributing

Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.

Please read our CONTRIBUTING.md file for more details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mvn_tree_visualizer-1.8.6.tar.gz (114.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mvn_tree_visualizer-1.8.6-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file mvn_tree_visualizer-1.8.6.tar.gz.

File metadata

  • Download URL: mvn_tree_visualizer-1.8.6.tar.gz
  • Upload date:
  • Size: 114.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for mvn_tree_visualizer-1.8.6.tar.gz
Algorithm Hash digest
SHA256 b4b5e0600ece567165f4fdb1b6e96163d9e1c5dfbe0c135da76baa775927c72b
MD5 51f76096bfdf6c81e340c0b769edee12
BLAKE2b-256 24c7ccfa76054a2cf90608bf11ba25ac04bde9a9a649ed17a5651001833e1d74

See more details on using hashes here.

File details

Details for the file mvn_tree_visualizer-1.8.6-py3-none-any.whl.

File metadata

File hashes

Hashes for mvn_tree_visualizer-1.8.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f167a0ebddfceb974fa3041df18a0f519ae8e1d849b045eafd6cc48466fb71ac
MD5 40eb922c1e48daa67a2e57e000e6b229
BLAKE2b-256 a383a1a550b4c9137731954e8637ae2b0e2e526a2a78993981314c35c6515a71

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page