Skip to content

Feature Request: Support incremental/partial build behavior similar to Eclipse and IntelliJ #1536

@NandhuH

Description

@NandhuH

Problem

The current build behavior in VS Code Java (via the Extension Pack for Java) rebuilds the entire workspace whenever projects are opened or source files change.
This leads to long build times and high CPU usage for medium-to-large multi module Maven Java projects.

By contrast, Eclipse and IntelliJ maintain an internal incremental compiler that recompiles only changed source files and directly affected classes.
This allows instant feedback and near-zero delay after saving a file.

Current behavior

  • When VS Code starts, the Java Language Server (JDT LS) performs a full workspace model reconstruction and re-indexing of dependencies.
  • There is no configuration option for “compile only changed files” or caching the incremental build graph between sessions.

Expected behavior

Provide a configuration or mechanism that enables true incremental/partial builds, similar to Eclipse’s JDT incremental compiler:

  • Only recompile modified .java files and dependent classes on save
  • Cache the build graph and dependency analysis between sessions
  • Avoid full workspace rebuilds unless explicitly requested

Why this matters

Incremental builds drastically improve the developer experience, especially for large enterprise or multi-module projects.
Eclipse and IntelliJ achieve near-instant feedback because they reuse the same incremental compiler that JDT LS already depends on internally.
Extending that functionality to VS Code would bring parity and make Java development in VS Code much smoother.

Environment

VS Code: 1.150.1
Extension Pack for Java: 0.30.4
Language Support for Java (Red Hat): 1.47.0
JDK: 17 (or specify your version)
Build tool: Maven
OS: Windows

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions