无法将 类 从一个模块导入到另一个模块 - Scala
Cannot import classes from one module to other one - Scala
我创建了一个包含 3 个不同模块的项目。第一个叫做 http
,第二个叫做 algebra
。我已将它们连接到 sbt
文件中,但是当我想在 http
中使用 algebra
中的 类 时,我无法导入它们,因为它们彼此看不到。
这是我的 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]{...}
Class MyRoutes
在 http 模块中,MyService
在代数模块中。 MyService
上的错误是 Cannot find declaration to go to
。
我该如何解决?
好的,我解决了这个问题。这是我的愚蠢错误。我没有将目录标记为 MyService
所在的源根目录。因此,在 http
模块中我看不到这个 class.
我创建了一个包含 3 个不同模块的项目。第一个叫做 http
,第二个叫做 algebra
。我已将它们连接到 sbt
文件中,但是当我想在 http
中使用 algebra
中的 类 时,我无法导入它们,因为它们彼此看不到。
这是我的 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]{...}
Class MyRoutes
在 http 模块中,MyService
在代数模块中。 MyService
上的错误是 Cannot find declaration to go to
。
我该如何解决?
好的,我解决了这个问题。这是我的愚蠢错误。我没有将目录标记为 MyService
所在的源根目录。因此,在 http
模块中我看不到这个 class.