首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:对象服务不是包com.twitter.finagle的成员-在生成文件Scala finagle中定义Bazel依赖项

错误:对象服务不是包com.twitter.finagle的成员-在生成文件Scala finagle中定义Bazel依赖项
EN

Stack Overflow用户
提问于 2021-09-21 14:36:50
回答 1查看 109关注 0票数 0

我正在尝试将finagle-http库作为外部maven依赖项添加到我的新bazel项目中。但是得到了下面的错误。我假设我在创建构建时做了一些错误的事情,而没有完全理解它。努力学习。感谢大家在这方面的帮助。

代码语言:javascript
复制
error: object Service is not a member of package com.twitter.finagle
error: object util is not a member of package com.twitter
error: type Request is not a member of package com.twitter.finagle.http
error: object Response is not a member of package com.twitter.finagle.http
error: Symbol 'type com.twitter.finagle.Client' is missing from the classpath. This symbol is required by 'object com.twitter.finagle.Http'.
error: not found: value Await

使用sbt也可以使用相同的代码。下面是代码。

代码语言:javascript
复制
import com.twitter.finagle.{Http, Service}
import com.twitter.finagle.http
import com.twitter.util.{Await, Future}

object HelloWorld extends App {
  val service = new Service[http.Request, http.Response] {
    def apply(req: http.Request): Future[http.Response] =
      Future.value(http.Response(req.version, http.Status.Ok))
  }
  val server = Http.serve(":8080", service)
  Await.ready(server)
}

工作区文件

代码语言:javascript
复制
maven_install(
    artifacts = [
        "org.apache.spark:spark-core_2.11:2.4.4",
        "org.apache.spark:spark-sql_2.11:2.4.1",
        "org.apache.spark:spark-unsafe_2.11:2.4.1",
        "org.apache.spark:spark-tags_2.11:2.4.1",
        "org.apache.spark:spark-catalyst_2.11:2.4.1",
        "com.twitter:finagle-http_2.12:21.8.0",
    ],
    repositories = [
        "https://repo.maven.apache.org/maven2/",
        "https://repo1.maven.org/maven2/",
    ]
)

构建文件

代码语言:javascript
复制
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary")
package(default_visibility = ["//visibility:public"])

scala_binary(
    name="helloworld",
    main_class="microservices.HelloWorld",
    srcs=[
        "Main.scala",
        ],
    deps = ["spark],
)

java_library(
    name = "spark",
    exports = [
        "@maven//:com_twitter_finagle_http_2_12_21_8_0",
        ],
)

在我最初的SBT项目中工作的sbt依赖项

代码语言:javascript
复制
libraryDependencies += "com.twitter" %% "finagle-http" % "21.8.0"
EN

回答 1

Stack Overflow用户

发布于 2021-09-23 12:44:57

解决了这个问题,不像在sbt中,在bazel中我确实添加了相关的依赖项。我修改了工作区,如下所示。

代码语言:javascript
复制
maven_install(
artifacts = [
    "com.twitter:finagle-http_2.12:21.8.0",
    "com.twitter:util-core_2.12:21.8.0",
    "com.twitter:finagle-core_2.12:21.8.0",
    "com.twitter:finagle-base-http_2.12:21.8.0",
    "com.fasterxml.jackson.module:jackson-module-scala_2.12:2.11.2",
    "com.fasterxml.jackson.core:jackson-databind:2.11.2",

],
repositories = [
    "https://repo.maven.apache.org/maven2/",
    "https://repo1.maven.org/maven2/",
]

构建文件--

代码语言:javascript
复制
java_library(
name = "finagletrial",
exports = [
    "@maven//:com_twitter_finagle_http_2_12_21_8_0",
    "@maven//:com_twitter_util_core_2_12_21_8_0",
    "@maven//:com_twitter_finagle_core_2_12_21_8_0",
    "@maven//:com_twitter_finagle_base_http_2_12_21_8_0",
    "@maven//:com_fasterxml_jackson_module_jackson_module_scala_2_12_2_11_2",
    "@maven//:com_fasterxml_jackson_core_jackson_databind_2_11_2"
    ],
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69270842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档