scala - 无法解析任意符号

标签 scala sbt

我正在尝试为我的类型实现Arbitrary,如下所示:

import cats._
import org.scalacheck.{Arbitrary, Gen}


object Server {

  sealed trait ServerHealth

  case object ServerOnline extends ServerHealth

  case object ServerOffline extends ServerHealth


  implicit val healthSemigroup: Semigroup[ServerHealth] = (x: ServerHealth, y: ServerHealth) => x match {
    case ServerOnline if y == ServerOnline => ServerOnline
    case ServerOffline => ServerOffline
  }

  implicit val healthEq: Eq[ServerHealth] = (x: ServerHealth, y: ServerHealth) => x match {
    case ServerOnline if y == ServerOnline => true
    case ServerOffline => false
  }

  implicit def healthArbitrary[A: Arbitrary]: Arbitrary[ServerHealth] =
    Arbitrary(Gen.oneOf(Gen.const(ServerOffline), for {
      e <- Arbitrary.arbitrary[A]
    } yield (ServerOffline, ServerOnline)))


}

编译器提示:

 object scalacheck is not a member of package org
[error] import org.scalacheck.{Arbitrary, Gen}

我使用 intellj 并且导入标记为红色:

enter image description here

我还检查了 build.sbt 文件:

val Http4sVersion = "0.21.0-M4"
val CirceVersion = "0.12.1"
val Specs2Version = "4.7.0"
val LogbackVersion = "1.2.3"
val ScalaTestVersion = "3.0.8"
val TestContainerVersion = "1.11.3"
val KafkaTestContainerVersion = "1.11.3"
val ConfigVersion = "1.3.4"
val SpringVersion = "5.1.8.RELEASE"
val catsVersion = "2.0.0"


lazy val settings = Seq(
  organization := "com.sweetsoft",
  name := "connector",
  scalaVersion := "2.13.0",
  addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.10.3"),
  addCompilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.0"),
  scalacOptions ++= Seq(
    "-deprecation",
    "-encoding", "UTF-8",
    "-language:higherKinds",
    "-language:postfixOps",
    "-feature",
    "-Xfatal-warnings",
  ),
  scalacOptions in(Compile, console) ~= {
    _.filterNot(Set("-Xlint"))
  }

)

lazy val dependencies = Seq(
  "org.http4s" %% "http4s-blaze-server" % Http4sVersion,
  "org.http4s" %% "http4s-blaze-client" % Http4sVersion,
  "org.http4s" %% "http4s-circe" % Http4sVersion,
  "org.http4s" %% "http4s-dsl" % Http4sVersion,
  "io.circe" %% "circe-generic" % CirceVersion,
  "ch.qos.logback" % "logback-classic" % LogbackVersion,
  "org.typelevel" %% "cats-core" % catsVersion,
  "com.typesafe" % "config" % ConfigVersion % "test",
  "org.scalactic" %% "scalactic" % ScalaTestVersion % "test",
  "org.scalatest" %% "scalatest" % ScalaTestVersion % "test",
  "org.testcontainers" % "testcontainers" % TestContainerVersion % "test",
  "org.testcontainers" % "kafka" % KafkaTestContainerVersion % "test",
  "org.springframework" % "spring-core" % SpringVersion % "test",
  "org.typelevel" %% "cats-laws" % catsVersion % "test",
  "com.github.alexarchambault" %% "scalacheck-shapeless_1.14" % "1.2.3" % "test",
  "org.scalacheck" %% "scalacheck" % "1.14.0" % "test"
)



lazy val global = project
  .in(file("."))
  .settings(settings)
  .aggregate(core, serversupervisor)


lazy val core = (project in file("core"))
  .settings(
    settings,
    libraryDependencies ++= dependencies
  )


lazy val serversupervisor = (project in file("serversupervisor"))
  .settings(
    settings,
    libraryDependencies ++= dependencies
  )
  .dependsOn(core)

我应该是正确的。缺少什么?

更新 实现位于图像上标记的 Server.scala 中:

enter image description here

serversupervisor 项目依赖于 core 项目,因为有一些公共(public)库。

最佳答案

您在 Compile 范围(即 src/main 中的源代码)中使用它,因此您需要从以下位置删除 % "test" ScalaCheck 依赖项。或者将该源移至 Test 范围(即在 src/test 中)

关于scala - 无法解析任意符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57980932/

相关文章:

sbt代理配置问题

从资源目录读取文件的Scala问题

Scala:使用反射来发现你的内在对象(和欲望)?

javascript - Akka.js 测试套件 : compilation error on simple example

scala - 模拟 Scala ParStream

scala - Play Framework 异步操作 : Future recover not working

sbt - 如何设置具有继承和共享依赖项的多项目 SBT 项目

java.lang.NoClassDefFoundError : scala/reflect/internal/Trees

范围内的 SBT dependencyOverrides 似乎没有按预期工作

scala - 如何通过谓词将序列分成两部分?