为什么github不使用相同的jdk编译?

vwoqyblh  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(303)

我有一个scala代码,它成功地在jdk13.0.1上本地构建。

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和OpenJDK13.x库中的字符串方法。

x6492ojm

x6492ojm1#

行动 github-action-sbt 在内部使用docker容器(源)。你的脚步 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")

创建此帖子时的来源
源@主

相关问题