You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This action provides the following functionality for GitHub Actions runners:
5
+
The `setup-java` action provides the following functionality for GitHub Actions runners:
8
6
- Downloading and setting up a requested version of Java. See [Usage](#Usage) for a list of supported distributions
9
7
- Extracting and caching custom version of Java from a local file
10
8
- Configuring runner for publishing using Apache Maven
@@ -18,33 +16,36 @@ This action provides the following functionality for GitHub Actions runners:
18
16
This action allows you to work with Java and Scala projects.
19
17
20
18
## V2 vs V1
21
-
- V2 supports custom distributions and provides support for Zulu OpenJDK, Eclipse Temurin and Adopt OpenJDK out of the box. V1 supports only Zulu OpenJDK
22
-
- V2 requires you to specify distribution along with the version. V1 defaults to Zulu OpenJDK, only version input is required. Follow [the migration guide](docs/switching-to-v2.md) to switch from V1 to V2
19
+
20
+
- 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
21
+
- 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
23
22
24
23
## Usage
24
+
25
25
Inputs `java-version` and `distribution` are mandatory. See [Supported distributions](#supported-distributions) section for a list of available options.
26
26
27
-
### Basic
28
-
**Eclipse Temurin**
27
+
### Basic Configuration
28
+
29
+
#### Eclipse Temurin
29
30
```yaml
30
31
steps:
31
32
- uses: actions/checkout@v3
32
33
- uses: actions/setup-java@v3
33
34
with:
34
35
distribution: 'temurin'# See 'Supported distributions' for available options
35
36
java-version: '17'
36
-
- run: java -cp java HelloWorldApp
37
+
- run: java HelloWorldApp.java
37
38
```
38
39
39
-
**Zulu OpenJDK**
40
+
#### Azul Zulu OpenJDK
40
41
```yaml
41
42
steps:
42
43
- uses: actions/checkout@v3
43
44
- uses: actions/setup-java@v3
44
45
with:
45
46
distribution: 'zulu'# See 'Supported distributions' for available options
46
-
java-version: '11'
47
-
- run: java -cp java HelloWorldApp
47
+
java-version: '17'
48
+
- run: java HelloWorldApp.java
48
49
```
49
50
50
51
#### Supported version syntax
@@ -58,18 +59,18 @@ Currently, the following distributions are supported:
58
59
| Keyword | Distribution | Official site | License
**NOTE:** The different distributors can provide discrepant list of available versions / supported configurations. Please refer to the official documentation to see the list of supported versions.
69
70
70
-
**NOTE:** Adopt OpenJDK got moved to Eclipse Temurin and won't be updated anymore. It is highly recommended to migrate workflows from `adopt` to `temurin` to keep receiving software and security updates. See more details in the [Good-bye AdoptOpenJDK post](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/).
71
+
**NOTE:** AdoptOpenJDK got moved to Eclipse Temurin and won't be updated anymore. It is highly recommended to migrate workflows from `adopt` to `temurin` to keep receiving software and security updates. See more details in the [Good-bye AdoptOpenJDK post](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/).
71
72
72
-
**NOTE:** For Zulu OpenJDK architectures x64 and arm64 are mapped to x86 / arm with proper hw_bitness.
73
+
**NOTE:** For Azul Zulu OpenJDK architectures x64 and arm64 are mapped to x86 / arm with proper hw_bitness.
73
74
74
75
### Caching packages dependencies
75
76
The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/actions/cache) under hood for caching dependencies but requires less configuration settings. Supported package managers are gradle, maven and sbt. The format of the used cache key is `setup-java-${{ platform }}-${{ packageManager }}-${{ fileHash }}`, where the hash is based on the following files:
@@ -88,7 +89,7 @@ steps:
88
89
- uses: actions/setup-java@v3
89
90
with:
90
91
distribution: 'temurin'
91
-
java-version: '11'
92
+
java-version: '17'
92
93
cache: 'gradle'
93
94
- run: ./gradlew build --no-daemon
94
95
```
@@ -100,7 +101,7 @@ steps:
100
101
- uses: actions/setup-java@v3
101
102
with:
102
103
distribution: 'temurin'
103
-
java-version: '11'
104
+
java-version: '17'
104
105
cache: 'maven'
105
106
- name: Build with Maven
106
107
run: mvn -B package --file pom.xml
@@ -113,13 +114,14 @@ steps:
113
114
- uses: actions/setup-java@v3
114
115
with:
115
116
distribution: 'temurin'
116
-
java-version: '11'
117
+
java-version: '17'
117
118
cache: 'sbt'
118
119
- name: Build with SBT
119
120
run: sbt package
120
121
```
121
122
122
123
### Check latest
124
+
123
125
In the basic examples above, the `check-latest` flag defaults to `false`. When set to `false`, the action tries to first resolve a version of Java from the local tool cache on the runner. If unable to find a specific version in the cache, the action will download a version of Java. Use the default or set `check-latest` to `false` if you prefer a faster more consistent setup experience that prioritizes trying to use the cached versions at the expense of newer versions sometimes being available for download.
124
126
125
127
If `check-latest` is set to `true`, the action first checks if the cached version is the latest one. If the locally cached version is not the most up-to-date, the latest version of Java will be downloaded. Set `check-latest` to `true` if you want the most up-to-date version of Java to always be used. Setting `check-latest` to `true` has performance implications as downloading versions of Java is slower than using cached versions.
@@ -133,9 +135,9 @@ steps:
133
135
- uses: actions/setup-java@v3
134
136
with:
135
137
distribution: 'adopt'
136
-
java-version: '11'
138
+
java-version: '17'
137
139
check-latest: true
138
-
- run: java -cp java HelloWorldApp
140
+
- run: java HelloWorldApp.java
139
141
```
140
142
141
143
### Testing against different Java versions
@@ -145,7 +147,7 @@ jobs:
145
147
runs-on: ubuntu-20.04
146
148
strategy:
147
149
matrix:
148
-
java: [ '8', '11', '13', '15' ]
150
+
java: [ '8', '11', '17' ]
149
151
name: Java ${{ matrix.Java }} sample
150
152
steps:
151
153
- uses: actions/checkout@v3
@@ -154,7 +156,7 @@ jobs:
154
156
with:
155
157
distribution: '<distribution>'
156
158
java-version: ${{ matrix.java }}
157
-
- run: java -cp java HelloWorldApp
159
+
- run: java HelloWorldApp.java
158
160
```
159
161
160
162
### Install multiple JDKs
@@ -172,7 +174,7 @@ All versions are added to the PATH. The last version will be used and available
172
174
15
173
175
```
174
176
175
-
### Advanced
177
+
### Advanced Configuration
176
178
- [Selecting a Java distribution](docs/advanced-usage.md#Selecting-a-Java-distribution)
0 commit comments