apache / apache/netbeans

Enhancement: Improve Maven multi-module support and Projects view to match VSCode-like unified project management

Open
#9,572 0 comments 1 reaction 0 assignees View on GitHub
kind:feature Maven needs:triage UI
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.