Skip to content

Commit a96c2ca

Browse files
improve documentation and more emphasis to Java 17 (actions#379)
1 parent 7bbeb80 commit a96c2ca

File tree

1 file changed

+28
-26
lines changed

1 file changed

+28
-26
lines changed

README.md

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
# setup-java
1+
# Setup Java
22

3-
<p align="left">
4-
<a href="https://github.com/actions/setup-java"><img alt="GitHub Actions status" src="https://github.com/actions/setup-java/workflows/Main%20workflow/badge.svg"></a>
5-
</p>
3+
[![Main workflow](https://github.com/actions/setup-java/actions/workflows/workflow.yml/badge.svg)](https://github.com/actions/setup-java/actions/workflows/workflow.yml)
64

7-
This action provides the following functionality for GitHub Actions runners:
5+
The `setup-java` action provides the following functionality for GitHub Actions runners:
86
- Downloading and setting up a requested version of Java. See [Usage](#Usage) for a list of supported distributions
97
- Extracting and caching custom version of Java from a local file
108
- Configuring runner for publishing using Apache Maven
@@ -18,33 +16,36 @@ This action provides the following functionality for GitHub Actions runners:
1816
This action allows you to work with Java and Scala projects.
1917

2018
## 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
2322

2423
## Usage
24+
2525
Inputs `java-version` and `distribution` are mandatory. See [Supported distributions](#supported-distributions) section for a list of available options.
2626

27-
### Basic
28-
**Eclipse Temurin**
27+
### Basic Configuration
28+
29+
#### Eclipse Temurin
2930
```yaml
3031
steps:
3132
- uses: actions/checkout@v3
3233
- uses: actions/setup-java@v3
3334
with:
3435
distribution: 'temurin' # See 'Supported distributions' for available options
3536
java-version: '17'
36-
- run: java -cp java HelloWorldApp
37+
- run: java HelloWorldApp.java
3738
```
3839
39-
**Zulu OpenJDK**
40+
#### Azul Zulu OpenJDK
4041
```yaml
4142
steps:
4243
- uses: actions/checkout@v3
4344
- uses: actions/setup-java@v3
4445
with:
4546
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
4849
```
4950
5051
#### Supported version syntax
@@ -58,18 +59,18 @@ Currently, the following distributions are supported:
5859
| Keyword | Distribution | Official site | License
5960
|-|-|-|-|
6061
| `temurin` | Eclipse Temurin | [Link](https://adoptium.net/) | [Link](https://adoptium.net/about.html)
61-
| `zulu` | Zulu OpenJDK | [Link](https://www.azul.com/downloads/zulu-community/?package=jdk) | [Link](https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-terms-of-use/) |
62-
| `adopt` or `adopt-hotspot` | Adopt OpenJDK Hotspot | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html) |
63-
| `adopt-openj9` | Adopt OpenJDK OpenJ9 | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html) |
62+
| `zulu` | Azul Zulu OpenJDK | [Link](https://www.azul.com/downloads/zulu-community/?package=jdk) | [Link](https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-terms-of-use/) |
63+
| `adopt` or `adopt-hotspot` | AdoptOpenJDK Hotspot | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html) |
64+
| `adopt-openj9` | AdoptOpenJDK OpenJ9 | [Link](https://adoptopenjdk.net/) | [Link](https://adoptopenjdk.net/about.html) |
6465
| `liberica` | Liberica JDK | [Link](https://bell-sw.com/) | [Link](https://bell-sw.com/liberica_eula/) |
6566
| `microsoft` | Microsoft Build of OpenJDK | [Link](https://www.microsoft.com/openjdk) | [Link](https://docs.microsoft.com/java/openjdk/faq)
6667
| `corretto` | Amazon Corretto Build of OpenJDK | [Link](https://aws.amazon.com/corretto/) | [Link](https://aws.amazon.com/corretto/faqs/)
6768

6869
**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.
6970

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/).
7172

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.
7374

7475
### Caching packages dependencies
7576
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:
8889
- uses: actions/setup-java@v3
8990
with:
9091
distribution: 'temurin'
91-
java-version: '11'
92+
java-version: '17'
9293
cache: 'gradle'
9394
- run: ./gradlew build --no-daemon
9495
```
@@ -100,7 +101,7 @@ steps:
100101
- uses: actions/setup-java@v3
101102
with:
102103
distribution: 'temurin'
103-
java-version: '11'
104+
java-version: '17'
104105
cache: 'maven'
105106
- name: Build with Maven
106107
run: mvn -B package --file pom.xml
@@ -113,13 +114,14 @@ steps:
113114
- uses: actions/setup-java@v3
114115
with:
115116
distribution: 'temurin'
116-
java-version: '11'
117+
java-version: '17'
117118
cache: 'sbt'
118119
- name: Build with SBT
119120
run: sbt package
120121
```
121122

122123
### Check latest
124+
123125
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.
124126

125127
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:
133135
- uses: actions/setup-java@v3
134136
with:
135137
distribution: 'adopt'
136-
java-version: '11'
138+
java-version: '17'
137139
check-latest: true
138-
- run: java -cp java HelloWorldApp
140+
- run: java HelloWorldApp.java
139141
```
140142

141143
### Testing against different Java versions
@@ -145,7 +147,7 @@ jobs:
145147
runs-on: ubuntu-20.04
146148
strategy:
147149
matrix:
148-
java: [ '8', '11', '13', '15' ]
150+
java: [ '8', '11', '17' ]
149151
name: Java ${{ matrix.Java }} sample
150152
steps:
151153
- uses: actions/checkout@v3
@@ -154,7 +156,7 @@ jobs:
154156
with:
155157
distribution: '<distribution>'
156158
java-version: ${{ matrix.java }}
157-
- run: java -cp java HelloWorldApp
159+
- run: java HelloWorldApp.java
158160
```
159161

160162
### Install multiple JDKs
@@ -172,7 +174,7 @@ All versions are added to the PATH. The last version will be used and available
172174
15
173175
```
174176

175-
### Advanced
177+
### Advanced Configuration
176178
- [Selecting a Java distribution](docs/advanced-usage.md#Selecting-a-Java-distribution)
177179
- [Eclipse Temurin](docs/advanced-usage.md#Eclipse-Temurin)
178180
- [Adopt](docs/advanced-usage.md#Adopt)

0 commit comments

Comments
 (0)