## Add a "toolchains-only" install mode (layered on the `set-default` primitive) ### Background PR #1017 introduces a `set-default` input: when `set-default: false`, the action installs a JDK **without** updating `JAVA_HOME` / `PATH` (while still exporting `JAVA_HOME_<major>_<arch>`). That cleanly covers the "don't make this JDK the environment default" use case (issue #560). The earlier PR #553 (issue #552) aimed at a broader, Maven-centric goal that **partially overlaps** with `set-default` but also contains a piece that `set-default` does **not** cover. This issue captures that remaining gap so it can be built **on top of** the `set-default` primitive rather than as a competing implementation. ### The gap not covered by `set-default` `set-default: false` controls the **environment** (`JAVA_HOME` / `PATH`). It does not, on its own, add the installed JDK as a **Maven toolchain** entry. The use case from #552 / #553 is: > Install a JDK and register it **only** as a Maven toolchain (`~/.m2/toolchains.xml`) — without touching `JAVA_HOME`, `PATH`, or `settings.xml`. This is useful when a workflow needs an additional JDK available to Maven's `maven-toolchains-plugin` (e.g. compiling/running a module against a specific JDK) while leaving the workflow's primary Java environment untouched. ### Proposed scope (narrowed) Add a focused input — e.g. `add-toolchain-only` (name TBD) — that, when `true`: - [ ] Adds/updates the JDK entry in `toolchains.xml` (existing toolchains logic). - [ ] Implies `set-default: false` semantics (does **not** update `JAVA_HOME` / `PATH`) unless the user explicitly opts back in. - [ ] Does **not** modify `settings.xml` (no `overwrite-settings` side effects) unless explicitly requested. - [ ] Still exports `JAVA_HOME_<major>_<arch>` (consistent with `set-default: false`). Explicitly **out of scope** (now handled by #1017): - General `JAVA_HOME` / `PATH` skipping — use `set-default: false`. ### Relationship / dependencies - **Depends on / builds on:** #1017 (`set-default`) — should be implemented as a thin layer over that primitive, reusing its env-skip behavior instead of re-deriving it. - **Supersedes (scope-wise):** the toolchains-only portion of PR #553. - **Original request:** #552. ### Notes PR #553 also proposed `update-env-javahome` / `update-env-path` as separate booleans; those are intentionally **not** carried forward — `set-default` from #1017 is the single, cleaner knob for that behavior. This issue deliberately narrows the remaining work to just the **toolchains.xml-only** capability.