java - 为什么 github 操作 CI 不使用相同的 jdk 编译?
问题描述
我有在 JDK 13.0.1 上成功构建的 Scala 代码。
s.getValue().stripTrailing() // s.getValue() returns String
当此代码由 github 操作构建时,我收到此错误:
Error: -- [E008] Not Found Error: /github/workspace/core/src/main/scala/co.blocke.scalajack/yaml/YamlParser.scala:45:96
Error: 45 | case "|" | ">" => s.getValue().stripTrailing()
Error: | ^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: | value stripTrailing is not a member of String
我的行动文件是:
name: Package Build
# This workflow is triggered on pushes to the repository.
on:
push:
branches-ignore:
- "feature/*" # don't run build/test against a feature branch -- no SLA there
- "master"
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Set up JDK 13
uses: actions/setup-java@v1
with:
java-version: '13.0.1'
- name: Test
id: sbt
uses: lokkju/github-action-sbt@master
with:
commands: test
stripTrailing() 是 Oracle 和 OpenJDK 13.x 库中的 String 方法。
解决方案
该操作github-action-sbt
在内部使用 Docker 容器(source)。您的步骤Set up JDK 13
仅适用于直接在运行器上运行的东西,但不会影响容器。
解决方案
指定格式的标签{JAVA_VERSION}-{SBT_VERSION}-{SCALA_VERSION}
。有关可用版本,请参见下文。
- name: Test
id: sbt
uses: lokkju/github-action-sbt@14-1.3.0-2.10.7
with:
commands: test
该标记控制用于初始化图像的 Java、SBT 和 Scala 的版本。SBT 和 Scala 将自动下载项目设置中指定的其他版本,但如果它们与初始化版本不匹配,则可能需要大量额外的构建时间。
标签格式为
{JAVA_VERSION}-{SBT_VERSION}-{SCALA_VERSION}
目前支持的标签有:JAVA_VERSIONS=("8" "11" "14") SBT_VERSIONS=("0.13.17" "1.1.6" "1.2.8" "1.3.0") SCALA_VERSIONS=("2.13.0" "2.12.10" "2.11.12" "2.10.7")
推荐阅读
- python - 在python中x秒后运行一个函数
- pandas - 相同的 Pandas 和 SQLite 查询没有给出相同的结果
- mongodb - #Mongodb - 如何在对象数组中获取数组的大小?
- extjs - 如何在屏幕顶部的 extjs 中显示 toast?
- c++ - MFC 序列化 C++
- rust - 如何让 .max() 返回 i32 数据类型?
- node.js - 最新版本的套接字 io nodejs 未连接到颤振应用程序
- spring - jsp:不同的条目获取相同的数据
- huggingface-transformers - 如何使用拥抱脸实现获得视觉转换器的最后一层的输出?
- flutter - 用于 Web 开发的 Flutter Quill