scala - Scala bazel Worker 进程没有返回 WorkResponse:
问题描述
在 BAZELWORKSPACE
文件中我添加了:
maven_jar(name = "com_chuusai_shapeless", artifact = "com.chuusai:shapeless_2.12:2.3.3")
在BUILD
文件中还添加了这个依赖:
deps = [
"@com_chuusai_shapeless//jar"
],
在我的代码中,我有:
import shapeless._
object ShapelessPG {
def run() = {
val emp = Employee("Maciej", 1, true)
val iceCream = IceCream("Vanillia", 5, false)
println(s"emp: $emp iceCream: $iceCream")
val genEmp = Generic[Employee]
val genIce = Generic[IceCream]
使用build
命令时,但运行时出现错误:
bazel build :App
DEBUG: /private/var/tmp/_bazel_userXYZ/daf16773bdceeb074610f489c565e309/external/io_bazel_rules_scala/scala/scala_maven_import_external.bzl:59:9: 'jar_sha256' is deprecated. Please use 'artifact_sha256'
INFO: Analyzed target //:App (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
ERROR: /Users/userXYZ/workspace/shapeless-bazel-zio-cats-playground/BUILD:3:1: scala //:App failed: Worker process did not return a WorkResponse:
---8<---8<--- Start of log snippet, file at /private/var/tmp/_bazel_userXYZ/daf16773bdceeb074610f489c565e309/bazel-workers/worker-3-Scalac.log ---8<---8<---
日志文件显示:
Exception in thread "main" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file shapeless/ReprTypes
at java.lang.ClassLoader.defineClass1(Native Method)
因为代码:
val genEmp = Generic[Employee]
在 sbt 中运行良好。
我不知道如何解决它..有人可以帮助我吗?
谢谢!
解决方案
maven_jar
不会引入shapeless
的传递依赖关系,例如macro-compat
和scala-library
。改用rules_jvm_external
:
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = [
"com.chuusai:shapeless_2.12:2.3.3",
],
repositories = [
"https://jcenter.bintray.com",
],
)
这将自动解析并macro_compat
获取shapeless
. 然后在BUILD文件中,你可以这样依赖shapeless
:
scala_library(
name = "my_jar",
srcs = # ...
deps = [
"@maven//:com_chuusai_shapeless_2_12",
],
)
推荐阅读
- css - CSS 没有在 react js 中体现
- python - 'errorcode' 未定义,而请求看起来不错
- angular - 使用 ngFor 的具有单独数组的多个 for 循环
- apache-spark - 为什么配置 Databricks Connect 后“databricks-connect test”不起作用?
- notifications - 使用 CloudWatch 通过两个指标监控 Amazon SQS
- python - 从配置文件变量设置默认值
- vba - Word VBA - 如何在标题中的表格中编辑单元格中的文本
- r - 是否有算法/包可以自动修复名单中的错误?
- javascript - 如何为 HTML 数字输入元素设置特定的拒绝消息?
- jquery - JQuery 排除类