为 SBT 增量编译设置代码构建输出源文件夹

Setting codebuild output source folder for SBT incremental compile

我很好奇您是否可以控制 AWS CodeBuild 中的输出 "src" 文件夹。

具体来说,我在调试 CodeBuild 中的构建时看到了这一点。

/codebuild/output/src473482839/src/github.....

我希望能够 set/change/remove 该路径的 src473482839 部分,因为我感觉它会导致我的 sbt 重新编译我的 scala 源文件,尽管我使用的是 CodeBuilds新的 localcache 用于在构建之间缓存我的目标文件夹,编译的 class 的规范路径在构建之间发生变化,这就是我 导致问题的原因

经过更多调试后,我成功地将 6 分钟的构建时间缩短到了 1:30s。

尽管您无法设置或覆盖 CODEBUILD_SRC_DIR 我在我的构建规范中找到了解决方法。

这就是我的构建规范现在的样子,在代码构建中启用了本地缓存。

version: 0.2

phases:
  pre_build:
    commands:
    - mkdir -p /my/build/folder/
    - cp -a ${CODEBUILD_SRC_DIR}/. /my/build/folder
  build:
    commands:
    - cd /my/build/folder
    - sbt compile test

cache:
  paths:
  - '/root/.ivy2/cache/**/*'
  - '/root/.cache/**/*'
  - 'target/**/*'
  - 'any other target folders you may need'

我必须做出的关键更改是在 pre_build 阶段复制源代码(缓存的目标目录),然后更改目录并从新的静态目录编译

我希望这能帮助其他人,直到 CodeBuild 允许一个人set/override CODEBUILD_SRC_DIR 文件夹