Dedupe setJavaDefault and document multi-version/toolchain behavior

- Refactor setJavaDefault to delegate shared output/env logic to
  setJavaEnvironment, avoiding duplication between the two.
- Document that set-default applies to all JDKs in a multiline
  java-version, and that installed JDKs remain registered in Maven
  toolchains regardless of set-default.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Bruno Borges
2026-06-22 17:08:46 -04:00
committed by GitHub
parent 9eb9a7c9b3
commit 8b504c3bad
3 changed files with 8 additions and 15 deletions
+5 -7
View File
@@ -78309,7 +78309,6 @@ const constants_1 = __nccwpck_require__(27242);
const os_1 = __importDefault(__nccwpck_require__(70857)); const os_1 = __importDefault(__nccwpck_require__(70857));
class JavaBase { class JavaBase {
constructor(distribution, installerOptions) { constructor(distribution, installerOptions) {
var _a;
this.distribution = distribution; this.distribution = distribution;
this.http = new httpm.HttpClient('actions/setup-java', undefined, { this.http = new httpm.HttpClient('actions/setup-java', undefined, {
allowRetries: true, allowRetries: true,
@@ -78319,7 +78318,10 @@ class JavaBase {
this.architecture = installerOptions.architecture || os_1.default.arch(); this.architecture = installerOptions.architecture || os_1.default.arch();
this.packageType = installerOptions.packageType; this.packageType = installerOptions.packageType;
this.checkLatest = installerOptions.checkLatest; this.checkLatest = installerOptions.checkLatest;
this.setDefault = (_a = installerOptions.setDefault) !== null && _a !== void 0 ? _a : true; this.setDefault =
installerOptions.setDefault !== undefined
? installerOptions.setDefault
: true;
} }
setupJava() { setupJava() {
var _a, _b; var _a, _b;
@@ -78540,13 +78542,9 @@ class JavaBase {
return error; return error;
} }
setJavaDefault(version, toolPath) { setJavaDefault(version, toolPath) {
const majorVersion = version.split('.')[0];
core.exportVariable('JAVA_HOME', toolPath); core.exportVariable('JAVA_HOME', toolPath);
core.addPath(path_1.default.join(toolPath, 'bin')); core.addPath(path_1.default.join(toolPath, 'bin'));
core.setOutput('distribution', this.distribution); this.setJavaEnvironment(version, toolPath);
core.setOutput('path', toolPath);
core.setOutput('version', version);
core.exportVariable(`JAVA_HOME_${majorVersion}_${this.architecture.toUpperCase()}`, toolPath);
} }
setJavaEnvironment(version, toolPath) { setJavaEnvironment(version, toolPath) {
const majorVersion = version.split('.')[0]; const majorVersion = version.split('.')[0];
+2
View File
@@ -294,6 +294,8 @@ steps:
In this example, `JAVA_HOME` and `java` on `PATH` point to Java 17, while Java 21 is available via `JAVA_HOME_21_X64` or the step output `path`. In this example, `JAVA_HOME` and `java` on `PATH` point to Java 17, while Java 21 is available via `JAVA_HOME_21_X64` or the step output `path`.
> **Note:** When a single step installs multiple JDKs via a multiline `java-version`, the `set-default` value applies to all of them. With `set-default: false`, none of those JDKs become the default; each remains discoverable through its `JAVA_HOME_<major>_<arch>` variable. Regardless of `set-default`, installed JDKs are still registered in the Maven toolchains file, so they can be selected via Maven toolchains.
## Installing Java from local file ## Installing Java from local file
If your use-case requires a custom distribution or a version that is not provided by setup-java, you can download it manually and setup-java will take care of the installation and caching on the VM: If your use-case requires a custom distribution or a version that is not provided by setup-java, you can download it manually and setup-java will take care of the installation and caching on the VM:
+1 -8
View File
@@ -310,16 +310,9 @@ export abstract class JavaBase {
} }
protected setJavaDefault(version: string, toolPath: string) { protected setJavaDefault(version: string, toolPath: string) {
const majorVersion = version.split('.')[0];
core.exportVariable('JAVA_HOME', toolPath); core.exportVariable('JAVA_HOME', toolPath);
core.addPath(path.join(toolPath, 'bin')); core.addPath(path.join(toolPath, 'bin'));
core.setOutput('distribution', this.distribution); this.setJavaEnvironment(version, toolPath);
core.setOutput('path', toolPath);
core.setOutput('version', version);
core.exportVariable(
`JAVA_HOME_${majorVersion}_${this.architecture.toUpperCase()}`,
toolPath
);
} }
protected setJavaEnvironment(version: string, toolPath: string) { protected setJavaEnvironment(version: string, toolPath: string) {