Github操作:使用多个JDK和相应的环境变量设置java

Github操作:使用多个JDK和相应的环境变量设置java,java,github-actions,Java,Github Actions,背景: 我有一个SpringBoot2.3项目,它使用基于Java11的cassandra反应式驱动程序。不过,对于集成测试,当我启动一个嵌入式Cassandra数据库时,我依赖于机器上是否有JAVA8以及附带的环境变量JAVA8_HOME 问题: 如何配置GitHub操作以使用多个JDK进行构建,并让JAVA_HOME指向JAVA 11,而让JAVA8_HOME指向JAVA8?不完全是安装JAVA,但您可以尝试另一个JAVA安装操作:。使用target属性设置env var作为JAVA\u H

背景: 我有一个SpringBoot2.3项目,它使用基于Java11的cassandra反应式驱动程序。不过,对于集成测试,当我启动一个嵌入式Cassandra数据库时,我依赖于机器上是否有JAVA8以及附带的环境变量JAVA8_HOME

问题:
如何配置GitHub操作以使用多个JDK进行构建,并让JAVA_HOME指向JAVA 11,而让JAVA8_HOME指向JAVA8?

不完全是安装JAVA,但您可以尝试另一个JAVA安装操作:。使用
target
属性设置env var作为
JAVA\u HOME

使用多个jdk和GitHub操作现在已经成为可能。一个好的、简洁的方法是利用
.github/workflows/maven.yml
中的作业配置:

name: github

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        java-version: [ 8, 11, 15 ]

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-java@v1
      with:
        java-version: ${{ matrix.java-version }}
    - run: mvn -B install --no-transfer-progress --file pom.xml
我没有检查这是否包括您需要的
JAVA\u HOME
的环境变量配置,但它清楚地隔离了单独JAVA版本的构建环境。下面是使用此设置的完整示例项目:和

此外,用于矩阵构建的GitHub操作GUI也很不错: