Build tools
Each detected build tool gets its own tasks tool window (its stripe appears
when the tool’s marker file is present): a browsable tree of the tool’s goals,
scripts, or targets with a mini toolbar (Run / Reload / Stop / Run custom…).
Double-click or Enter runs a task, and the output streams to the shared Build
Output window, which has one tab per tool (created on first run and
selected while it runs), so two builds running at once stay in separate tabs
instead of interleaving. A searchable actions popup is also available from the
palette (<tool>.showActions, e.g. Maven: Show Actions). tool.<tool> opens
the tasks window; tool.buildOutput opens the Build Output console. It’s on by
default, and each tool is inert until its marker file is found.
| Tool | Marker | Actions |
|---|---|---|
| Maven | pom.xml | Lifecycle phases, declared profiles (checkable, composing via -P), each plugin’s bound goals, and Run custom… |
| npm | package.json | One entry per scripts name, plus install / ci |
| Cargo | Cargo.toml | Standard subcommands, [[bin]] / [[example]] targets, and a --release toggle |
| Go | go.mod / go.work | Standard subcommands over the whole module |
| Gradle | build.gradle[.kts] | Common tasks, plus Load all tasks… |
Maven and Gradle prefer the project’s own ./mvnw / ./gradlew wrapper, falling
back to mvn / gradle on your PATH. npm uses the detected package manager
(npm / yarn / pnpm / bun) from the packageManager field or the lockfile.
Discovery parses the marker file directly, with no shell-out and no new dependency, so it’s instant and offline. Toggle each under Settings → Languages & Tools → Build Tools.