mvn-tree-visualizer 1.4.0__tar.gz → 1.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mvn_tree_visualizer-1.5.0/.github/copilot-instructions.md +87 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/workflows/release.yml +1 -1
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/PKG-INFO +5 -7
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/README.md +4 -6
- mvn_tree_visualizer-1.5.0/ROADMAP.md +149 -0
- mvn_tree_visualizer-1.5.0/examples/README.md +164 -0
- mvn_tree_visualizer-1.5.0/examples/complex-project/diagram-dark.html +649 -0
- mvn_tree_visualizer-1.5.0/examples/complex-project/diagram-minimal.html +624 -0
- mvn_tree_visualizer-1.5.0/examples/complex-project/maven_dependency_file +129 -0
- mvn_tree_visualizer-1.5.0/examples/simple-project/dependencies.json +192 -0
- {mvn_tree_visualizer-1.4.0/examples/complex-project → mvn_tree_visualizer-1.5.0/examples/simple-project}/diagram-dark.html +100 -157
- {mvn_tree_visualizer-1.4.0/examples/complex-project → mvn_tree_visualizer-1.5.0/examples/simple-project}/diagram-minimal.html +100 -157
- mvn_tree_visualizer-1.5.0/examples/simple-project/maven_dependency_file +44 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/pyproject.toml +1 -1
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/enhanced_template.py +68 -5
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/themes.py +13 -0
- mvn_tree_visualizer-1.5.0/tests/test_github_issue_7.py +147 -0
- mvn_tree_visualizer-1.5.0/tests/test_large_diagram_support.py +199 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/uv.lock +1 -1
- mvn_tree_visualizer-1.4.0/ROADMAP.md +0 -131
- mvn_tree_visualizer-1.4.0/examples/README.md +0 -91
- mvn_tree_visualizer-1.4.0/examples/complex-project/maven_dependency_file +0 -84
- mvn_tree_visualizer-1.4.0/examples/simple-project/dependencies.json +0 -40
- mvn_tree_visualizer-1.4.0/examples/simple-project/diagram-dark.html +0 -250
- mvn_tree_visualizer-1.4.0/examples/simple-project/diagram-minimal.html +0 -225
- mvn_tree_visualizer-1.4.0/examples/simple-project/maven_dependency_file +0 -9
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/FUNDING.yml +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/SECURITY.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/dependabot.yml +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/instructions/copilot-instructions.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.github/workflows/ci.yml +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.gitignore +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/.python-version +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/CHANGELOG.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/CODE_OF_CONDUCT.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/CONTRIBUTING.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/LICENSE +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/RELEASE.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/docs/INTEGRATION.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/docs/README.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/docs/THEMES.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/examples/watch-test/README.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/examples/watch-test/test_maven_file +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/issues.md +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/ruff.toml +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/__init__.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/__main__.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/cli.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/diagram.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/exceptions.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/file_watcher.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/get_dependencies_in_one_file.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/outputs/html_output.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/outputs/json_output.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/src/mvn_tree_visualizer/validation.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/tests/test_html_output.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/tests/test_json_output.py +0 -0
- {mvn_tree_visualizer-1.4.0 → mvn_tree_visualizer-1.5.0}/tests/test_watch_mode.py +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Maven Dependency Tree Visualizer - AI Coding Agent Instructions
|
|
2
|
+
|
|
3
|
+
## Architecture Overview
|
|
4
|
+
|
|
5
|
+
This is a **command-line tool** that converts Maven dependency tree output into interactive HTML diagrams and JSON data. The tool follows a **pipeline architecture**:
|
|
6
|
+
|
|
7
|
+
1. **Input Processing**: Merges multiple `maven_dependency_file` files from different Maven modules (`get_dependencies_in_one_file.py`)
|
|
8
|
+
2. **Data Transformation**: Parses Maven tree format and converts to Mermaid diagram syntax (`diagram.py`, `outputs/html_output.py`)
|
|
9
|
+
3. **Output Generation**: Creates themed HTML with interactive features or structured JSON (`outputs/`)
|
|
10
|
+
4. **Watch Mode**: Real-time file monitoring for development workflows (`file_watcher.py`)
|
|
11
|
+
|
|
12
|
+
## Key Components & Data Flow
|
|
13
|
+
|
|
14
|
+
### Core Pipeline (`cli.py`)
|
|
15
|
+
- Entry point validates inputs → merges dependency files → generates outputs
|
|
16
|
+
- **Error handling is comprehensive** - uses custom exception hierarchy in `exceptions.py`
|
|
17
|
+
- Supports both HTML (interactive) and JSON (programmatic) output formats
|
|
18
|
+
|
|
19
|
+
### Multi-Module Maven Support (`get_dependencies_in_one_file.py`)
|
|
20
|
+
- **Critical pattern**: Recursively finds and merges `maven_dependency_file` from all subdirectories
|
|
21
|
+
- Maven projects often have complex module structures - tool handles this automatically
|
|
22
|
+
- Generated intermediate file `dependency_tree.txt` is cleaned up unless `--keep-tree` is used
|
|
23
|
+
|
|
24
|
+
### Mermaid.js Conversion (`outputs/html_output.py`)
|
|
25
|
+
- **Node classification logic**: Root (blue), intermediate (orange), leaf (green) based on dependency relationships
|
|
26
|
+
- **Sanitization pattern**: Maven artifact names → valid Mermaid node IDs (hyphens to underscores)
|
|
27
|
+
- Tracks parent/child relationships to determine node types for consistent styling
|
|
28
|
+
|
|
29
|
+
### Theme System (`themes.py`, `enhanced_template.py`)
|
|
30
|
+
- **Consistent color scheme** across all themes via `STANDARD_COLORS`
|
|
31
|
+
- Dark theme has specific text visibility fixes for Mermaid.js compatibility
|
|
32
|
+
- Template includes pan/zoom, download functionality, keyboard shortcuts
|
|
33
|
+
|
|
34
|
+
## Maven Integration Workflow
|
|
35
|
+
|
|
36
|
+
The tool expects this Maven command to be run first:
|
|
37
|
+
```bash
|
|
38
|
+
mvn dependency:tree -DoutputFile=maven_dependency_file -DappendOutput=true
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Why this matters**: The tool is designed around Maven's specific output format and file placement in `target/` directories.
|
|
42
|
+
|
|
43
|
+
## Development Conventions
|
|
44
|
+
|
|
45
|
+
### Error Handling
|
|
46
|
+
- Custom exception hierarchy: `MvnTreeVisualizerError` → specific error types
|
|
47
|
+
- **Pattern**: Validate early, fail fast with helpful error messages including Maven commands
|
|
48
|
+
- File operations wrapped with encoding and permission checks
|
|
49
|
+
|
|
50
|
+
### Testing Patterns (`tests/`)
|
|
51
|
+
- **Key test pattern**: Use temporary directories for file operations
|
|
52
|
+
- Mock file system events for watch mode testing
|
|
53
|
+
- Mermaid output validation focuses on relationships and styling classes
|
|
54
|
+
|
|
55
|
+
### Code Organization
|
|
56
|
+
- **Outputs as pluggable modules**: `outputs/html_output.py`, `outputs/json_output.py`
|
|
57
|
+
- Validation logic centralized in `validation.py`
|
|
58
|
+
- Theme configuration as data classes, not inheritance
|
|
59
|
+
|
|
60
|
+
## Critical Implementation Details
|
|
61
|
+
|
|
62
|
+
### Watch Mode (`file_watcher.py`)
|
|
63
|
+
- Uses `watchdog` library with custom event handlers
|
|
64
|
+
- Monitors for changes to any file named `maven_dependency_file` in directory tree
|
|
65
|
+
- Callback-based architecture for diagram regeneration
|
|
66
|
+
|
|
67
|
+
### Version Display Logic
|
|
68
|
+
- `--show-versions` flag affects both HTML and JSON output
|
|
69
|
+
- Version info stripped/included during Mermaid conversion, not at template level
|
|
70
|
+
|
|
71
|
+
### File Path Handling
|
|
72
|
+
- **Windows compatibility**: Uses `pathlib.Path` consistently
|
|
73
|
+
- Intermediate files created in output directory, not temp
|
|
74
|
+
- Directory creation is recursive (`parents=True, exist_ok=True`)
|
|
75
|
+
|
|
76
|
+
## Common Debugging Workflows
|
|
77
|
+
|
|
78
|
+
1. **No dependency files found**: Check if Maven command was run and generated files in `target/` dirs
|
|
79
|
+
2. **Empty diagrams**: Verify Maven output format and encoding (UTF-8 expected)
|
|
80
|
+
3. **Theme rendering issues**: Dark theme has specific CSS overrides for Mermaid.js text visibility
|
|
81
|
+
4. **Watch mode not triggering**: Ensure file names match exactly (`maven_dependency_file`)
|
|
82
|
+
|
|
83
|
+
## Extension Points
|
|
84
|
+
|
|
85
|
+
- **New output formats**: Add modules to `outputs/` directory following existing pattern
|
|
86
|
+
- **Custom themes**: Extend `THEMES` dict in `themes.py` with `Theme` objects
|
|
87
|
+
- **New validation rules**: Add to `validation.py` following existing error patterns
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mvn-tree-visualizer
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0
|
|
4
4
|
Summary: A simple command line tool to visualize the dependency tree of a Maven project in a graphical format.
|
|
5
5
|
Project-URL: source, https://github.com/dyka3773/mvn-tree-visualizer
|
|
6
6
|
Author-email: Iraklis Konsoulas <dyka3773@gmail.com>
|
|
@@ -57,12 +57,10 @@ pip install mvn-tree-visualizer
|
|
|
57
57
|
- **JSON:** Creates a structured JSON representation of the dependency tree, perfect for scripting or integration with other tools.
|
|
58
58
|
- **🎨 Theme System:** Choose from 2 built-in themes (minimal, dark) for clean and consistent diagram styling.
|
|
59
59
|
- **🔄 Watch Mode:** Automatically regenerates diagrams when Maven dependency files change using the `--watch` flag.
|
|
60
|
-
- **📋 Version Display:**
|
|
61
|
-
-
|
|
62
|
-
- **📂 File
|
|
63
|
-
-
|
|
64
|
-
- **💾 Enhanced Downloads:** Download diagrams as SVG or high-resolution PNG directly from the HTML page.
|
|
65
|
-
- **🖱️ Interactive Features:** Hover tooltips, click-to-highlight connections, pan/zoom controls, and keyboard shortcuts.
|
|
60
|
+
- **📋 Version Display:** Toggle dependency versions in outputs with `--show-versions`
|
|
61
|
+
- **💾 Enhanced Downloads:** SVG and PNG export directly from browser
|
|
62
|
+
- **📂 Smart File Handling:** Automatically finds and merges multiple `maven_dependency_file` files from different subdirectories.
|
|
63
|
+
- **🎯 Color Coding:** Visual distinction between root, intermediate, and leaf dependencies
|
|
66
64
|
|
|
67
65
|
## How to Use
|
|
68
66
|
|
|
@@ -37,12 +37,10 @@ pip install mvn-tree-visualizer
|
|
|
37
37
|
- **JSON:** Creates a structured JSON representation of the dependency tree, perfect for scripting or integration with other tools.
|
|
38
38
|
- **🎨 Theme System:** Choose from 2 built-in themes (minimal, dark) for clean and consistent diagram styling.
|
|
39
39
|
- **🔄 Watch Mode:** Automatically regenerates diagrams when Maven dependency files change using the `--watch` flag.
|
|
40
|
-
- **📋 Version Display:**
|
|
41
|
-
-
|
|
42
|
-
- **📂 File
|
|
43
|
-
-
|
|
44
|
-
- **💾 Enhanced Downloads:** Download diagrams as SVG or high-resolution PNG directly from the HTML page.
|
|
45
|
-
- **🖱️ Interactive Features:** Hover tooltips, click-to-highlight connections, pan/zoom controls, and keyboard shortcuts.
|
|
40
|
+
- **📋 Version Display:** Toggle dependency versions in outputs with `--show-versions`
|
|
41
|
+
- **💾 Enhanced Downloads:** SVG and PNG export directly from browser
|
|
42
|
+
- **📂 Smart File Handling:** Automatically finds and merges multiple `maven_dependency_file` files from different subdirectories.
|
|
43
|
+
- **🎯 Color Coding:** Visual distinction between root, intermediate, and leaf dependencies
|
|
46
44
|
|
|
47
45
|
## How to Use
|
|
48
46
|
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Project Roadmap
|
|
2
|
+
|
|
3
|
+
This document outlines the evolution and future direction of the `mvn-tree-visualizer` project. Major milestones show the progression from a basic tool to an enterprise-ready solution.
|
|
4
|
+
|
|
5
|
+
## 🎉 Recently Completed ✅
|
|
6
|
+
|
|
7
|
+
### v1.5.0 - Large Project Support & GitHub Issue #7 Resolution (Released)
|
|
8
|
+
|
|
9
|
+
**Focus:** Enterprise-ready support for massive dependency trees and enhanced navigation.
|
|
10
|
+
|
|
11
|
+
**Status:** Released July 19, 2025
|
|
12
|
+
|
|
13
|
+
* **GitHub Issue #7 Resolution (Completed):**
|
|
14
|
+
* [x] **No More Size Limits**: Enhanced Mermaid configuration with `maxTextSize: 900000000`
|
|
15
|
+
* [x] **Massive Edge Support**: Increased `maxEdges: 20000` for complex enterprise projects
|
|
16
|
+
* [x] **50x Zoom Range**: Advanced zoom from 0.01x (overview) to 50x (detailed inspection)
|
|
17
|
+
* [x] **Enhanced Performance**: Memory-optimized rendering for 1000+ dependency projects
|
|
18
|
+
|
|
19
|
+
* **Navigation Enhancements (Completed):**
|
|
20
|
+
* [x] **Keyboard Shortcuts**: `Ctrl+R` (reset), `+/-` (zoom), `s` (download)
|
|
21
|
+
* [x] **Smooth Zoom Controls**: Mouse wheel with 0.2 sensitivity for precise navigation
|
|
22
|
+
* [x] **One-Click Reset**: Instant return to full diagram view
|
|
23
|
+
* [x] **Error Prevention**: Zoom bounds validation and graceful error handling
|
|
24
|
+
|
|
25
|
+
### Previous Major Releases ✅
|
|
26
|
+
|
|
27
|
+
* **v1.4.0 - Visual and Theme Enhancements** (July 17, 2025)
|
|
28
|
+
* [x] Professional minimal and dark themes
|
|
29
|
+
* [x] Enhanced HTML templates with interactive features
|
|
30
|
+
* [x] SVG download functionality and improved user experience
|
|
31
|
+
|
|
32
|
+
* **v1.3.0 - User Experience Improvements** (July 9, 2025)
|
|
33
|
+
* [x] Watch mode functionality with `--watch` flag
|
|
34
|
+
* [x] Enhanced error handling system with comprehensive guidance
|
|
35
|
+
* [x] Custom exception classes and validation modules
|
|
36
|
+
* [x] Comprehensive test coverage and modular organization
|
|
37
|
+
|
|
38
|
+
* **Core Foundation** (Earlier versions)
|
|
39
|
+
* [x] Multiple output formats (HTML and JSON)
|
|
40
|
+
* [x] Dependency version display with `--show-versions`
|
|
41
|
+
* [x] Multi-module Maven project support
|
|
42
|
+
* [x] CI/CD workflows and comprehensive documentation
|
|
43
|
+
* [x] `--theme` option with multiple built-in themes (default/minimal, dark, light)
|
|
44
|
+
## 🔮 Future Development
|
|
45
|
+
|
|
46
|
+
### v1.6.0 - Advanced Interactive Features 🎯 (Next Major Release)
|
|
47
|
+
|
|
48
|
+
**Focus:** Enhanced interactivity and user experience for large enterprise projects.
|
|
49
|
+
|
|
50
|
+
**Priority:** High - Building on the solid large project foundation with advanced user interaction.
|
|
51
|
+
|
|
52
|
+
* **Enhanced Node Search & Navigation (High Priority):**
|
|
53
|
+
* [ ] **Smart Dependency Search:** Find nodes by dependency name with instant highlighting
|
|
54
|
+
* **Technical Requirements:** Must highlight nodes WITHOUT moving or displacing SVG elements
|
|
55
|
+
* **Approach:** Use SVG overlays or CSS-only highlighting instead of DOM manipulation
|
|
56
|
+
* **Keyboard Shortcut:** `Ctrl+F` for search dialog
|
|
57
|
+
* **Features:** Auto-complete, regex support, multiple match handling
|
|
58
|
+
* [ ] **Dependency Path Tracing:** Highlight full dependency chains from root to selected node
|
|
59
|
+
* [ ] **Scope-based Filtering:** Filter by dependency scope (compile, test, runtime, provided)
|
|
60
|
+
|
|
61
|
+
* **Advanced Navigation Controls (Medium Priority):**
|
|
62
|
+
* [ ] **Zoom to Dependency Subtree:** Right-click zoom to focus on specific dependency branch
|
|
63
|
+
* [ ] **Breadcrumb Navigation:** Show current zoom/focus location in large diagrams
|
|
64
|
+
* [ ] **Mini-map Overlay:** Small overview map for orientation in large dependency trees
|
|
65
|
+
|
|
66
|
+
* **Enhanced User Experience (Medium Priority):**
|
|
67
|
+
* [ ] **Rich Tooltips:** Detailed dependency information (groupId, artifactId, version, scope, licenses)
|
|
68
|
+
* [ ] **Dependency Statistics:** Live counts of direct/transitive dependencies
|
|
69
|
+
* [ ] **Export Enhancements:** PNG, PDF export with current zoom level and highlighting
|
|
70
|
+
|
|
71
|
+
### v1.7.0 - Enterprise Integration
|
|
72
|
+
|
|
73
|
+
**Focus:** Advanced functionality for enterprise development workflows.
|
|
74
|
+
|
|
75
|
+
* **CI/CD Integration:**
|
|
76
|
+
* [ ] **GitHub Actions Integration:** Pre-built actions for automated diagram generation
|
|
77
|
+
* [ ] **Jenkins Plugin:** Seamless integration with Jenkins pipelines
|
|
78
|
+
* [ ] **Docker Container:** Official container images for containerized environments
|
|
79
|
+
|
|
80
|
+
* **Advanced Analysis:**
|
|
81
|
+
* [ ] **Dependency Conflict Detection:** Visual highlighting of version conflicts
|
|
82
|
+
* [ ] **Security Vulnerability Mapping:** Integration with vulnerability databases
|
|
83
|
+
* [ ] **License Compliance:** Visual license information and compliance checking
|
|
84
|
+
|
|
85
|
+
* **Multi-Project Support:**
|
|
86
|
+
* [ ] **Workspace Mode:** Handle multiple Maven projects simultaneously
|
|
87
|
+
* [ ] **Cross-Project Dependencies:** Visualize dependencies between different projects
|
|
88
|
+
* [ ] **Monorepo Support:** Enhanced support for large monorepo structures
|
|
89
|
+
|
|
90
|
+
### v1.8.0+ - Advanced Capabilities 🚀
|
|
91
|
+
|
|
92
|
+
**Focus:** Cutting-edge features for modern development workflows.
|
|
93
|
+
|
|
94
|
+
* **AI-Powered Features:**
|
|
95
|
+
* [ ] **Dependency Recommendations:** AI suggestions for dependency updates and optimizations
|
|
96
|
+
* [ ] **Architecture Insights:** Automated analysis of dependency architecture patterns
|
|
97
|
+
* [ ] **Refactoring Suggestions:** Recommendations for dependency cleanup and optimization
|
|
98
|
+
|
|
99
|
+
* **Real-time Collaboration:**
|
|
100
|
+
* [ ] **Shared Diagrams:** Cloud-based diagram sharing for team collaboration
|
|
101
|
+
* [ ] **Live Updates:** Real-time diagram updates for team development
|
|
102
|
+
* [ ] **Annotation System:** Team comments and notes on dependency diagrams
|
|
103
|
+
|
|
104
|
+
## 🎯 Technical Debt & Maintenance
|
|
105
|
+
|
|
106
|
+
### Ongoing Improvements
|
|
107
|
+
* **Performance Optimization:** Continuous improvements for larger and more complex projects
|
|
108
|
+
* **Browser Compatibility:** Ensure compatibility with all major browsers and versions
|
|
109
|
+
* **Accessibility:** Enhanced accessibility features for users with disabilities
|
|
110
|
+
* **Documentation:** Comprehensive API documentation and developer guides
|
|
111
|
+
|
|
112
|
+
### Code Quality
|
|
113
|
+
* **Test Coverage:** Maintain high test coverage with focus on edge cases
|
|
114
|
+
* **Type Safety:** Full type annotation coverage and strict type checking
|
|
115
|
+
* **Security:** Regular security audits and dependency updates
|
|
116
|
+
* **Performance:** Continuous profiling and optimization of critical paths
|
|
117
|
+
|
|
118
|
+
**Focus:** Advanced analysis and integration features.
|
|
119
|
+
|
|
120
|
+
* **Dependency Analysis:**
|
|
121
|
+
* [ ] Dependency conflict detection and highlighting
|
|
122
|
+
* [ ] Dependency statistics and analysis
|
|
123
|
+
* [ ] Version mismatch warnings
|
|
124
|
+
* **Integration Capabilities:**
|
|
125
|
+
* [ ] CI/CD pipeline integration examples
|
|
126
|
+
* [ ] Docker support and containerization
|
|
127
|
+
* [ ] Maven plugin version (if demand exists)
|
|
128
|
+
|
|
129
|
+
## Long-Term Vision (6-12 Months+)
|
|
130
|
+
|
|
131
|
+
* **Web-Based Version:** A web-based version where users can paste their dependency tree and get a visualization without installing the CLI.
|
|
132
|
+
* **IDE Integration:** Plugins for VS Code, IntelliJ IDEA, or Eclipse for direct dependency visualization.
|
|
133
|
+
* **Multi-Language Support:** Extend beyond Maven to support Gradle, npm, pip, etc.
|
|
134
|
+
|
|
135
|
+
## Release Strategy
|
|
136
|
+
|
|
137
|
+
Each release follows this approach:
|
|
138
|
+
- **Incremental Value:** Each version adds meaningful value without breaking existing functionality
|
|
139
|
+
- **User-Driven:** Priority based on user feedback and common pain points
|
|
140
|
+
- **Quality First:** New features include comprehensive tests and documentation
|
|
141
|
+
- **Backward Compatibility:** CLI interface remains stable across minor versions
|
|
142
|
+
|
|
143
|
+
## Contributing
|
|
144
|
+
|
|
145
|
+
If you're interested in contributing to any of these features, please check out our [CONTRIBUTING.md](CONTRIBUTING.md) file for more information.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
*Last updated: July 16, 2025*
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Examples
|
|
2
|
+
|
|
3
|
+
This directory contains example Maven dependency files and their corresponding outputs to demonstrate the capabilities of mvn-tree-visualizer, including the enhanced features for large dependency trees.
|
|
4
|
+
|
|
5
|
+
## Simple Project Example
|
|
6
|
+
|
|
7
|
+
The `simple-project/` directory contains a modern Spring Boot 3.2 web application with:
|
|
8
|
+
- **Spring Boot 3.2.0** - Latest stable version with Spring 6.1
|
|
9
|
+
- **Apache Commons Lang3** - Utility library
|
|
10
|
+
- **JUnit Jupiter 5.10.1** - Modern testing framework
|
|
11
|
+
|
|
12
|
+
### 📁 Available Examples:
|
|
13
|
+
- `diagram-minimal.html` - Clean light theme optimized for readability
|
|
14
|
+
- `diagram-dark.html` - Dark theme perfect for low-light environments
|
|
15
|
+
- `dependencies.json` - JSON output for programmatic integration
|
|
16
|
+
|
|
17
|
+
### 🛠️ Generation Commands:
|
|
18
|
+
```bash
|
|
19
|
+
cd examples/simple-project
|
|
20
|
+
|
|
21
|
+
# Generate with different themes
|
|
22
|
+
mvn_tree_visualizer --filename maven_dependency_file --output diagram-minimal.html
|
|
23
|
+
mvn_tree_visualizer --filename maven_dependency_file --output diagram-dark.html --theme dark
|
|
24
|
+
|
|
25
|
+
# Generate JSON output for automation
|
|
26
|
+
mvn_tree_visualizer --filename maven_dependency_file --output dependencies.json --format json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Complex Project Example
|
|
30
|
+
|
|
31
|
+
The `complex-project/` directory demonstrates a **real-world enterprise microservice** with extensive dependencies:
|
|
32
|
+
|
|
33
|
+
- **Spring Boot 3.2.0** with Web, Data JPA, and Actuator
|
|
34
|
+
- **Database**: MySQL Connector with Hibernate ORM
|
|
35
|
+
- **Monitoring**: Prometheus metrics and Micrometer
|
|
36
|
+
- **Utilities**: Google Guava, Apache Commons
|
|
37
|
+
- **Testing**: Comprehensive test stack with Testcontainers
|
|
38
|
+
- **🎯 Over 100+ dependencies** - Perfect for testing large diagram capabilities!
|
|
39
|
+
|
|
40
|
+
### 📁 Available Examples:
|
|
41
|
+
- `diagram-minimal.html` - Clean visualization with version numbers
|
|
42
|
+
- `diagram-dark.html` - Dark theme with complete dependency details
|
|
43
|
+
|
|
44
|
+
### 🛠️ Generation Commands:
|
|
45
|
+
```bash
|
|
46
|
+
cd examples/complex-project
|
|
47
|
+
|
|
48
|
+
# Generate with version numbers (recommended for enterprise projects)
|
|
49
|
+
mvn_tree_visualizer --filename maven_dependency_file --output diagram-minimal.html --show-versions
|
|
50
|
+
mvn_tree_visualizer --filename maven_dependency_file --output diagram-dark.html --theme dark --show-versions
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 🎨 Theme Comparison
|
|
54
|
+
|
|
55
|
+
### Minimal Theme Features:
|
|
56
|
+
- **Clean white background** for presentations and documentation
|
|
57
|
+
- **Black text and borders** for high contrast and printing
|
|
58
|
+
- **Monospace font** (Monaco/Menlo) for technical readability
|
|
59
|
+
- **Optimized spacing** for large dependency trees
|
|
60
|
+
|
|
61
|
+
### Dark Theme Features:
|
|
62
|
+
- **Forest green background** with enhanced visibility fixes
|
|
63
|
+
- **White text forced rendering** solves Mermaid.js dark theme issues
|
|
64
|
+
- **Perfect for long coding sessions** and low-light environments
|
|
65
|
+
- **Enhanced contrast** for better node distinction
|
|
66
|
+
|
|
67
|
+
## 🔍 Enhanced Navigation Features
|
|
68
|
+
|
|
69
|
+
Both examples demonstrate the powerful navigation capabilities:
|
|
70
|
+
|
|
71
|
+
### Zoom Controls:
|
|
72
|
+
- **Zoom In/Out Buttons**: `+` and `-` for precise control
|
|
73
|
+
- **Reset Button**: `Ctrl+R` to return to full view
|
|
74
|
+
- **Mouse Wheel**: Smooth zooming with 0.2 sensitivity
|
|
75
|
+
- **Extreme Zoom Range**: 0.01x (full overview) to 50x (detailed inspection)
|
|
76
|
+
|
|
77
|
+
### Keyboard Shortcuts:
|
|
78
|
+
- `Ctrl+R` - Reset zoom and center
|
|
79
|
+
- `+` / `=` - Zoom in
|
|
80
|
+
- `-` - Zoom out
|
|
81
|
+
- `s` - Download SVG
|
|
82
|
+
|
|
83
|
+
### Large Diagram Optimizations:
|
|
84
|
+
- **No text size limits** - Handles projects with 1000+ dependencies
|
|
85
|
+
- **Smooth performance** even with complex enterprise dependency trees
|
|
86
|
+
- **Memory efficient** rendering with optimized edge handling
|
|
87
|
+
|
|
88
|
+
## 🔧 Technical Details
|
|
89
|
+
|
|
90
|
+
### Mermaid.js Configuration:
|
|
91
|
+
```javascript
|
|
92
|
+
maxTextSize: 900000000 // Virtually unlimited text rendering
|
|
93
|
+
maxEdges: 20000 // Supports massive dependency graphs
|
|
94
|
+
minZoom: 0.01 // 100x zoom out for full overview
|
|
95
|
+
maxZoom: 50 // 50x zoom in for detailed inspection
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Color Coding:
|
|
99
|
+
- **🔵 Blue nodes** - Root project dependencies
|
|
100
|
+
- **🟠 Orange nodes** - Intermediate dependencies
|
|
101
|
+
- **🟢 Green nodes** - Leaf dependencies (no further deps)
|
|
102
|
+
|
|
103
|
+
## 📊 Use Cases
|
|
104
|
+
|
|
105
|
+
### Development Teams:
|
|
106
|
+
- **Dependency analysis** and version conflict resolution
|
|
107
|
+
- **Architecture reviews** and dependency health checks
|
|
108
|
+
- **Documentation** for technical specifications
|
|
109
|
+
|
|
110
|
+
### Enterprise Projects:
|
|
111
|
+
- **Compliance audits** with complete dependency visibility
|
|
112
|
+
- **Security analysis** of transitive dependencies
|
|
113
|
+
- **Performance optimization** by identifying heavy dependency chains
|
|
114
|
+
|
|
115
|
+
## 🎯 Getting Started
|
|
116
|
+
|
|
117
|
+
1. **Generate your dependency file**:
|
|
118
|
+
```bash
|
|
119
|
+
mvn dependency:tree -DoutputFile=maven_dependency_file -DappendOutput=true
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
2. **Create visualizations**:
|
|
123
|
+
```bash
|
|
124
|
+
# Basic diagram
|
|
125
|
+
mvn_tree_visualizer --filename maven_dependency_file --output diagram.html
|
|
126
|
+
|
|
127
|
+
# With versions for detailed analysis
|
|
128
|
+
mvn_tree_visualizer --filename maven_dependency_file --output diagram.html --show-versions
|
|
129
|
+
|
|
130
|
+
# Dark theme for coding sessions
|
|
131
|
+
mvn_tree_visualizer --filename maven_dependency_file --output diagram.html --theme dark
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
3. **Open in browser** and explore with enhanced zoom and navigation controls!
|
|
135
|
+
|
|
136
|
+
## Use Cases
|
|
137
|
+
|
|
138
|
+
### 1. Quick Dependency Overview
|
|
139
|
+
```bash
|
|
140
|
+
mvn_tree_visualizer --filename maven_dependency_file --output overview.html
|
|
141
|
+
```
|
|
142
|
+
- Clean view without version numbers
|
|
143
|
+
- Easy to identify dependency relationships
|
|
144
|
+
|
|
145
|
+
### 2. Detailed Analysis with Versions
|
|
146
|
+
```bash
|
|
147
|
+
mvn_tree_visualizer --filename maven_dependency_file --output detailed.html --show-versions
|
|
148
|
+
```
|
|
149
|
+
- Shows all version information
|
|
150
|
+
- Useful for debugging version conflicts
|
|
151
|
+
|
|
152
|
+
### 3. Scripting and Automation
|
|
153
|
+
```bash
|
|
154
|
+
mvn_tree_visualizer --filename maven_dependency_file --output deps.json --format json
|
|
155
|
+
```
|
|
156
|
+
- Machine-readable JSON format
|
|
157
|
+
- Perfect for CI/CD pipelines and automated analysis
|
|
158
|
+
|
|
159
|
+
### 4. Multi-module Projects
|
|
160
|
+
```bash
|
|
161
|
+
mvn_tree_visualizer --directory ./my-project --output multi-module.html
|
|
162
|
+
```
|
|
163
|
+
- Automatically finds and merges dependency files from subdirectories
|
|
164
|
+
- Comprehensive view of entire project structure
|