无法将类从一个模块导入到另一个模块 - Scala

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将类从一个模块导入到另一个模块 - Scala相关的知识,希望对你有一定的参考价值。

我创建了一个包含3个不同模块的项目。第一个被称为http和第二个algebra。我在sbt文件中将它们连接成一个,但是当我想在algebra中使用来自http的类时,我无法导入它们,因为它们没有看到对方。这是我的sbt文件:

lazy val commonSettings = Seq(
  libraryDependencies ++= Seq(
    "org.typelevel" %% "cats-core" % CatsVersion,
    "org.typelevel" %% "cats-effect" % "1.2.0",
    "org.typelevel" %% "cats-tagless-macros" % "0.2.0",
    "org.typelevel" %% "cats-mtl-core" % "0.5.0",
  )
)

lazy val root = project.in(file(".")).aggregate(http, domain, algebra)
  .settings(commonSettings)
  .settings(libraryDependencies ++= Seq(
    "org.tpolecat" %% "doobie-core" % DoobieVersion,
    "org.tpolecat" %% "doobie-h2" % DoobieVersion,
    "org.tpolecat" %% "doobie-scalatest" % DoobieVersion,
    "org.tpolecat" %% "doobie-hikari" % DoobieVersion,
  ))

lazy val http = (project in file("http"))
  .dependsOn(algebra)
  .settings(commonSettings)
  .settings(
    name := "my-http",
    libraryDependencies ++= Seq(
      "io.circe" %% "circe-generic" % CirceVersion,
      "io.circe" %% "circe-literal" % CirceVersion,
      "io.circe" %% "circe-generic-extras" % CirceVersion,
      "io.circe" %% "circe-parser" % CirceVersion,
      "io.circe" %% "circe-java8" % CirceVersion,
      "io.circe" %% "circe-config" % CirceConfigVersion,

      "org.http4s" %% "http4s-blaze-server" % Http4sVersion,
      "org.http4s" %% "http4s-circe" % Http4sVersion,
      "org.http4s" %% "http4s-dsl" % Http4sVersion,
    ))

lazy val domain = project.in(file("domain"))

lazy val algebra = (project in file("algebra"))
  .settings(commonSettings)
  .settings(
    name := "my-algebra",
  )

我试图刷新所有项目,但它没有用。

class MyRoutes[F[_]: Effect](services: MyService[F]) extends Http4sDsl[F]{...}

MyRoutes在http模块中,MyService在代数模块中。错误是Cannot find declaration to go to上的MyService。我该如何解决?

答案

好的,我解决了这个问题。这是我的,愚蠢的错误。我没有将目录标记为源根,其中是MyService。因此,在http模块中我看不到这个类。

以上是关于无法将类从一个模块导入到另一个模块 - Scala的主要内容,如果未能解决你的问题,请参考以下文章

python导入类

将类从asType转换为类 :无法施放

将类从可执行文件导出到 dll

从一个.ts文件到另一个文件的简单模块导入

第二十二章 模块代码编写基础

无法将数据从一个模块组件发送到另一个模块组件