Github操作:具有多个JDK和相应环境变量的setup-java

时间:2020-10-08 20:25:51

标签: java github-actions

背景: 我有一个使用基于Java 11的cassandra的反应驱动程序的spring-boot 2.3项目,但是,为了进行集成测试,当我启动嵌入式Cassandra数据库时,我依赖于机器上存在Java 8并附带环境变量JAVA8_HOME

问题: 如何配置GitHub操作setup-java来利用多个JDK进行构建,并让JAVA_HOME指向Java 11但JAVA8_HOME指向Java8?

2 个答案:

答案 0 :(得分:2)

今天已经可以在 GitHub 操作中使用多个 JDK。一种很好且巧妙的方法是在您的 .github/workflows/maven.yml 中利用 strategy.matrix 作业配置:

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_HOME 的环境变量配置 - 但它清楚地隔离了单独 Java 版本的构建环境。以下是使用此设置的完整示例项目:https://github.com/codecentric/cxf-spring-boot-starterhere's a green build log

用于矩阵构建的 GitHub 操作 GUI 也非常好: github actions matrix build

答案 1 :(得分:0)

并非完全是Java安装程序,但您可以尝试另一个Java安装操作:https://github.com/AdoptOpenJDK/install-jdk#multiple-jdks。使用target属性设置环境变量以用作JAVA_HOME