使用多个JDK运行CircleCI 2.0构建

使用多个JDK运行CircleCI 2.0构建,circleci,circleci-2.0,Circleci,Circleci 2.0,我想使用开放JDK 8和9运行Circle CI 2.0构建。是否有任何YAML示例可以解释如何使用多个JDK版本构建Java项目 目前,我正在尝试将一个新作业java-8添加到我的构建中。但我不想重复默认Java9build作业的所有步骤。有没有一种干燥的方法 version: 2 jobs: build: docker: # specify the version you desire here - image: circleci/openjdk:9-jd

我想使用开放JDK 8和9运行Circle CI 2.0构建。是否有任何YAML示例可以解释如何使用多个JDK版本构建Java项目

目前,我正在尝试将一个新作业
java-8
添加到我的构建中。但我不想重复默认Java9
build
作业的所有步骤。有没有一种干燥的方法

version: 2
jobs:
  build:
    docker:
      # specify the version you desire here
      - image: circleci/openjdk:9-jdk

    working_directory: ~/repo

    environment:
      # Customize the JVM maximum heap limit
      JVM_OPTS: -Xmx1g
      TERM: dumb

    steps:
      - checkout

      # Run all tests
      - run: gradle check

  java-8:
    - image: circleci/openjdk:8-jdk
您可以使用以实现合理的干燥方法。例如,它可能看起来像:

版本:2
共享:&共享
工作目录:~/repo
环境:
#自定义JVM最大堆限制
JVM_选项:-Xmx1g
术语:哑巴
步骤:
-结帐
#运行所有测试
-运行:梯度检查
工作:
java-9:
码头工人:
-图片:circleci/openjdk:9-jdk

我正在分享我自己解决这个问题的方法

基本路由使用
工作流

version: 2
jobs:
  jdk8:
    docker:
      - image: circleci/openjdk:8-jdk-stretch
    steps:
      - ...
  jdk11:
    docker:
      - image: circleci/openjdk:11-jdk-stretch
    steps:
      - ...
workflows:
  version: 2
  work:
    jobs:
      - jdk8
      - jdk11
现在我们可以使用上面解释的方法

版本:2
共享:&共享
步骤:
-结帐
-还原U缓存:
键:带有maven示例的proguard-{{checksum“pom.xml”}
-运行:mvn依赖项:脱机
-保存缓存:
路径:
-~/.m2
键:带有maven示例的proguard-{{checksum“pom.xml”}
-运行:mvn包
工作:
jdk8:
码头工人:
-图:circleci/openjdk:8-jdk-stretch

你能发布你的最终解决方案吗?被接受的答案是否与书面答案一样有效?
version: 2
jobs:
  jdk8:
    docker:
      - image: circleci/openjdk:8-jdk-stretch
    steps:
      - ...
  jdk11:
    docker:
      - image: circleci/openjdk:11-jdk-stretch
    steps:
      - ...
workflows:
  version: 2
  work:
    jobs:
      - jdk8
      - jdk11
version: 2
shared: &shared
  steps:
    - checkout
    - restore_cache:
        key: proguard-with-maven-example-{{ checksum "pom.xml" }}
    - run: mvn dependency:go-offline
    - save_cache:
        paths:
          - ~/.m2
        key: proguard-with-maven-example-{{ checksum "pom.xml" }}
    - run: mvn package
jobs:
  jdk8:
    docker:
      - image: circleci/openjdk:8-jdk-stretch
    <<: *shared
  jdk11:
    docker:
      - image: circleci/openjdk:11-jdk-stretch
    <<: *shared
workflows:
  version: 2
  work:
    jobs:
      - jdk8
      - jdk11