Enhancement: Improve Maven multi-module support and Projects view to match VSCode-like unified project management
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 935
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 17
Description
### Description
## Affected Version
All
## Project Type
Maven multi-module project
## Component
Maven support / Projects view / Project UI
### What happened (current behavior)
1. **Maven multi-module project loading**
- When opening a Maven parent project, NetBeans **does not auto-detect and load all declared submodules** in the Projects view.
- Each submodule must be opened individually; once opened, submodules appear **as top-level siblings with the parent project** (flat list), not nested under the parent.
- With 20+ submodules, the Projects view becomes **cluttered, unstructured, and hard to navigate**.
2. **Unopened submodules break IDE features**
- Unopened submodules are visible in the **Files view** (physical file system) but not in the Projects view.
- Opening Java files from unopened modules treats them as **plain text files**: no code completion, static analysis, error checking, breakpoint debugging, or refactoring support.
3. **Projects view missing root files**
- Key root files (**README.md, .gitignore, LICENSE, docker-compose.yml, .gitlab-ci.yml**, etc.) are **not shown in the Projects view**.
- Users must **switch back and forth between Projects and Files views** to view/edit these files, which is disruptive and inefficient.
### Steps to reproduce
1. Open a standard Maven multi-module project (parent pom.xml with `>` list).
2. Observe the Projects view: only the parent project is loaded; submodules are not auto-imported.
3. Open several submodules: they appear as top-level entries, not nested under parent.
4. Open a Java file from an unopened submodule via Files view: no IDE intelligence.
5. Check root directory: README.md and other config files are missing in Projects view.
### What you would like to happen (expected behavior)
1. **Auto‑detect & nest all Maven submodules**
- Open parent pom.xml → **automatically recognize and load all submodules** declared in pom.xml.
- Display submodules **hierarchically nested under their parent module** in Projects view (not flat list).
- Support large multi‑module projects (20+ modules) with clean, collapsible tree structure.
2. **Full IDE support without manually opening submodules**
- Any file from any submodule (opened via Projects or Files view) gets **full Java intelligence**: completion, linting, debugging, goto definition, refactoring.
- No need to manually “open” a submodule to use IDE features.
3. **Unified Projects view = logical structure + physical files**
- Show **root project files** (README.md, .gitignore, config files) directly in Projects view, under parent/module root nodes.
- Eliminate constant switching between Projects and Files views.
- Deliver a **unified, VSCode‑like project explorer** that combines logical Maven structure and physical file visibility.
### Use case/motivation
This improvement is critical for **enterprise Java development** with large Maven multi‑module projects.
Current behavior:
- Slows down daily navigation and file lookup
- Breaks debugging and coding assistance for unopened modules
- Forces context switching between two views
- Scales poorly for teams with many modules
A unified, hierarchical Projects view matching modern IDE ergonomics will **greatly improve productivity** and make NetBeans more competitive for professional Maven‑based development.
### Proposal
Redesign the Maven project provider and Projects view to:
- Parse full multi‑module tree at project open time
- Render parent‑module hierarchy natively
- Enable full language server/debugger support for all submodules by default
- Show configurable root files (README, configs) in Projects view
- Merge logical project structure and physical file visibility into one coherent view
### Related issues
_No response_
### Are you willing to submit a pull request?
No
Contributor guide
Research direction
Start with the Maven project provider and Projects view entry points, using a parent pom.xml with declared modules as the reproduction case. Compare the Projects and Files views for unopened submodules and root files. Done means submodules are auto-loaded and nested, files receive Java support, and requested root files appear in the unified view.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100