使用多个JDK运行CircleCI 2.0构建
我想使用开放JDK 8和9运行Circle CI 2.0构建。是否有任何YAML示例可以解释如何使用多个JDK版本构建Java项目 目前,我正在尝试将一个新作业使用多个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
java-8
添加到我的构建中。但我不想重复默认Java9build
作业的所有步骤。有没有一种干燥的方法
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