Skip to content

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

Description

@AndyLuke

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Maven[ci] enable "build tools" testskind:featureA feature requestneeds:triageRequires attention from one of the committers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions