【问题标题】:SBT can't find and import cats-coreSBT 找不到和导入cats-core
【发布时间】:2019-07-30 14:46:45
【问题描述】:

我正在开始一个新项目来试用 Scala Cats,而我的 SBT 似乎拒绝找到 cat-core。引入 ScalaTest 之类的东西没有问题,但是每当我尝试使用作为 libraryDependencies 的猫核心刷新我的 sbt 项目时,它声称这是一个未解决的依赖项,查看错误,它说:

[warn]  module not found: org.typelevel#cats-core_2.13;2.0.0-M2
[warn] ==== local: tried
[warn]   /Users/me/.ivy2/local/org.typelevel/cats-core_2.13/2.0.0-M2/ivys/ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/org/typelevel/cats-core_2.13/2.0.0-M2/cats-core_2.13-2.0.0-M2.pom
[warn] ==== local-preloaded-ivy: tried
[warn]   /Users/me/.sbt/preloaded/org.typelevel/cats-core_2.13/2.0.0-M2/ivys/ivy.xml
[warn] ==== local-preloaded: tried
[warn]   file:////Users/me/.sbt/preloaded/org/typelevel/cats-core_2.13/2.0.0-M2/cats-core_2.13-2.0.0-M2.pom
[warn] ==== cats-core: tried
[warn]   https://mvnrepository.com/artifact/org.typelevel/cats-core/org/typelevel/cats-core_2.13/2.0.0-M2/cats-core_2.13-2.0.0-M2.pom

我的 build.sbt 看起来像这样:

scalaVersion := "2.13.0"

libraryDependencies ++= Seq(
  "org.typelevel" %% "cats-core" % "2.0.0-M2",
  "org.scalatest" %% "scalatest" % "3.0.8" % Test
)

resolvers += "cats-core" at "https://mvnrepository.com/artifact/org.typelevel/cats-core" // it gives the same errors without this line

scalacOptions ++= Seq("-Xfatal-warnings","-Ypartial-unification")

val exportFullResolvers = taskKey[Unit]("debug resolvers")

exportFullResolvers := {
  for {
    (resolver,idx) <- fullResolvers.value.zipWithIndex
  } println(s"${idx}.  ${resolver.name}")
}

知道怎么带进去吗?

【问题讨论】:

  • 您需要将 Cats 2.0.0-M4 用于 Scala 2.13.0。 - 可以查看版本兼容性here.
  • 如果 sbt 可以告诉您在某个 repo 中可以找到类似的工件,那就太好了,所以至少知道您就在附近。
  • @LuisMiguelMejíaSuárez 成功了。如果您将其作为答案提供,我很乐意为您打勾。
  • Cats 2.0.0-RC1 已发布。

标签: scala sbt scala-cats


【解决方案1】:

错误很明显module not found: org.typelevel#cats-core_2.13;2.0.0-M2

然后我只需搜索(谷歌)mavenrepo cats-core

通常排名靠前的结果会引导您进入

https://mvnrepository.com/artifact/org.typelevel/cats-core

或 on on(有时在浏览 scala 版本时此站点更容易):

https://index.scala-lang.org/typelevel/cats/cats-core

【讨论】:

  • 在 mvnrepository 中寻找东西总是一个很好的开始,我认为 SBT 应该知道首先去那里寻找(我认为它确实如此),但它不会带来 - 反过来这是版本差异。
  • @NateH06 这就是这个答案的想法——sbt 试图解决你定义的任何问题——如果它不能解决它就会失败。所以你有办法找出正确的版本。 mvnrepository 只显示可用的 mavenrepos 及其内容(sbt 查找的地方)
  • 现在说得通了,我没听懂你的意思。在不知道由于语言版本不兼容导致导入失败的情况下,我想确定如何处理您的建议。谢谢!
猜你喜欢
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2015-01-02
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多