@@ -18,11 +18,20 @@ The `setup-java` action provides the following functionality for GitHub Actions
This action allows you to work with Java and Scala projects.
## Breaking changes in V5
- Upgraded action from node20 to node24
> Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release [Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)
For more details, see the full release notes on the [releases page](https://github.com/actions/setup-java/releases/tag/v5.0.0)
## V2 vs V1
- V2 supports custom distributions and provides support for Azul Zulu OpenJDK, Eclipse Temurin and AdoptOpenJDK out of the box. V1 supports only Azul Zulu OpenJDK.
- V2 requires you to specify distribution along with the version. V1 defaults to Azul Zulu OpenJDK, only version input is required. Follow [the migration guide](docs/switching-to-v2.md) to switch from V1 to V2.
For information about the latest releases, recent updates, and newly supported distributions, please refer to the `setup-java` [Releases](https://github.com/actions/setup-java/releases).
## Usage
-`java-version`: The Java version that is going to be set up. Takes a whole or [semver](#supported-version-syntax) Java version. If not specified, the action will expect `java-version-file` input to be specified.
@@ -69,8 +78,8 @@ This action allows you to work with Java and Scala projects.
#### Eclipse Temurin
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'temurin'# See 'Supported distributions' for available options
java-version:'21'
@@ -80,8 +89,8 @@ steps:
#### Azul Zulu OpenJDK
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'zulu'# See 'Supported distributions' for available options
java-version:'21'
@@ -136,8 +145,8 @@ The cache input is optional, and caching is turned off by default.
#### Caching gradle dependencies
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'temurin'
java-version:'21'
@@ -151,8 +160,8 @@ steps:
#### Caching maven dependencies
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'temurin'
java-version:'21'
@@ -165,8 +174,8 @@ steps:
#### Caching sbt dependencies
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'temurin'
java-version:'21'
@@ -185,8 +194,8 @@ Usually, cache gets downloaded in multiple segments of fixed sizes. Sometimes, a
env:
SEGMENT_DOWNLOAD_TIMEOUT_MINS:'5'
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'temurin'
java-version:'21'
@@ -205,8 +214,8 @@ For Java distributions that are not cached on Hosted images, `check-latest` alwa
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'temurin'
java-version:'21'
@@ -224,9 +233,9 @@ jobs:
java:['8','11','17','21']
name:Java ${{ matrix.Java }} sample
steps:
- uses:actions/checkout@v4
- uses:actions/checkout@v5
- name:Setup java
uses:actions/setup-java@v4
uses:actions/setup-java@v5
with:
distribution:'<distribution>'
java-version:${{ matrix.java }}
@@ -235,11 +244,11 @@ jobs:
### Install multiple JDKs
All versions are added to the PATH. The last version will be used and available globally. Other Java versions can be accessed through env variables with such specification as 'JAVA_HOME_{{ MAJOR_VERSION }}_{{ ARCHITECTURE }}'.
All configured Java versions are added to the PATH. The last one added to the PATH (i.e., the last JDK set up by this action) will be used as the default and available globally. Other Java versions can be accessed through environment variables such as 'JAVA_HOME_{{ MAJOR_VERSION }}_{{ ARCHITECTURE }}'. To use a specific Java version, set the JAVA_HOME environment variable accordingly and prepend its bin directory to the PATH to ensure it takes priority during execution.
@@ -31,8 +31,8 @@ Inputs `java-version` and `distribution` are mandatory and needs to be provided.
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'temurin'
java-version:'21'
@@ -44,8 +44,8 @@ steps:
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'adopt-hotspot'
java-version:'11'
@@ -56,8 +56,8 @@ steps:
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'zulu'
java-version:'21'
@@ -69,8 +69,8 @@ steps:
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'liberica'
java-version:'21'
@@ -82,8 +82,8 @@ steps:
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'microsoft'
java-version:'21'
@@ -97,7 +97,7 @@ steps:
To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action:
```yaml
uses:actions/setup-java@v4
uses:actions/setup-java@v5
with:
token:${{ secrets.GH_DOTCOM_TOKEN }}
distribution:'microsoft'
@@ -111,8 +111,8 @@ If the runner is not able to access github.com, any Java versions requested duri
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'corretto'
java-version:'21'
@@ -124,8 +124,8 @@ steps:
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'oracle'
java-version:'21'
@@ -137,8 +137,8 @@ steps:
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'dragonwell'
java-version:'8'
@@ -149,8 +149,8 @@ steps:
**NOTE:** An OpenJDK release maintained and supported by SAP
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'sapmachine'
java-version:'21'
@@ -162,8 +162,8 @@ steps:
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'graalvm'
java-version:'21'
@@ -181,8 +181,8 @@ For example, `11.0.24` is not available but `11.0.16` is.
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'jetbrains'
java-version:'11'
@@ -194,8 +194,8 @@ GitHub token to the action to increase the rate limit. Set the `GITHUB_TOKEN` en
```yaml
steps:
- uses:actions/checkout@v4
- uses:actions/setup-java@v4
- uses:actions/checkout@v5
- uses:actions/setup-java@v5
with:
distribution:'jetbrains'
java-version:'17'
@@ -219,8 +219,8 @@ The available package types are:
more specific versions: 8.0.282+8, 8.0.232, 11.0, 11.0.4, 17.0
early access (EA) versions: 15-ea, 15.0.0-ea
versions with specified distribution: openjdk64-11.0.2
LTS versions : temurin-21.0.5+11.0.LTS
```
If the file contains multiple versions, only the first one will be recognized.
***NOTE***:
For the tool-version file, ensure that you use standard semantic versioning (semver) formats, as non-standard formats (such as jetbrains-21b212.1) may not be parsed correctly. Additionally, for complex version strings containing multiple version-like segments (for example, java semeru-openj9-11.0.15+10_openj9-0.32.0), the extraction logic may incorrectly capture the last segment (0.32.0) instead of the main version (11.0.15+10).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.