* Implement support for custom vendors in setup-java * minor improvements * minor refactoring * Add unit tests and e2e tests * Update documentation for setup-java@v2 release * minor improvements * regenerate dist * fix comments * resolve comments * resolve comments * fix tests * Update README.md Co-authored-by: George Adams <george.adams@microsoft.com> * Apply suggestions from code review Co-authored-by: Konrad Pabjan <konradpabjan@github.com> * fix minor nitpicks * handle 4th digit * pull latest main * Update README.md * rename adoptium to adopt * rename adoptium to adopt * rename adoptium to adopt * Update README.md * make java-version and distribution required for action * update readme * fix tests * fix e2e tests Co-authored-by: George Adams <george.adams@microsoft.com> Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
4 KiB
setup-java
This action provides the following functionality for GitHub Actions runners:
- Downloading and setting up a requested version of Java. See Usage for a list of supported distributions
- Extracting and caching custom version of Java from a local file
- Configuring runner for publishing using Apache Maven
- Configuring runner for publishing using Gradle
- Configuring runner for using GPG private key
- Registering problem matchers for error output
V2 vs V1
- V2 supports custom distributions and provides support for Zulu OpenJDK and Adopt OpenJDK out of the box. V1 supports only Zulu OpenJDK
- V2 requires you to specify distribution along with the version. V1 defaults to Zulu OpenJDK, only version input is required. Follow the migration guide to switch from V1 to V2
Usage
Inputs java-version
and distribution
are mandatory. See Supported distributions section for a list of available options.
Basic
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2-preview
with:
distribution: 'adopt' # See 'Supported distributions' for available options
java-version: '11'
- run: java -cp java HelloWorldApp
Supported version syntax
The java-version
input supports an exact version or a version range using SemVer notation:
- major versions:
8
,11
,15
- more specific versions:
11.0
,11.0.4
,8.0.232
,8.0.282+8
- early access (EA) versions:
15-ea
,15.0.0-ea
,15.0.0-ea.2
,15.0.0+2-ea
Note: 4-digit notation will always force action to skip checking pre-cached versions and download version in runtime.
Supported distributions
Currently, the following distributions are supported:
Keyword | Distribution | Official site | License |
---|---|---|---|
zulu |
Zulu OpenJDK | Link | Link |
adopt |
Adopt OpenJDK | Link | Link |
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.
Testing against different Java versions
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
java: [ '8', '11', '13', '15' ]
name: Java ${{ matrix.Java }} sample
steps:
- uses: actions/checkout@v2
- name: Setup java
uses: actions/setup-java@v2-preview
with:
distribution: '<distribution>'
java-version: ${{ matrix.java }}
- run: java -cp java HelloWorldApp
Advanced
- Selecting a Java distribution
- Installing custom Java package type
- Installing custom Java architecture
- Installing custom Java distribution from local file
- Testing against different Java distributions
- Testing against different platforms
- Publishing using Apache Maven
- Publishing using Gradle
License
The scripts and documentation in this project are released under the MIT License
Contributions
Contributions are welcome! See Contributor's Guide