scala - SBT 项目刷新失败 [IntelliJ、Scala、SBT]

标签 scala intellij-idea sbt intellij-plugin

每当我尝试在 IntelliJ 中启用自动导入时,它总是给我这个错误:

SBT 'Example' project refresh failed

Error while importing SBT project:
...
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/org/scalatest/scalatest_2.12/2.2.6/scalatest_2.12-2.2.6.pom
[info] Resolving org.scala-lang#scala-compiler;2.12.0 ...
[info] Resolving org.scala-lang#scala-reflect;2.12.0 ...
[info] Resolving org.scala-lang.modules#scala-xml_2.12;1.0.5 ...
[info] Resolving jline#jline;2.14.1 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.scalatest#scalatest_2.12;2.2.6: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn] 
[warn]  Note: Unresolved dependencies path:
[warn]      org.scalatest:scalatest_2.12:2.2.6 (/Users/sarahbaka/Desktop/Scala/Example/build.sbt#L7-8)
[warn]        +- default:example_2.12:1.0
[trace] Stack trace suppressed: run 'last *:update' for the full output.
[trace] Stack trace suppressed: run 'last *:ssExtractDependencies' for the full output.
[error] (*:update) sbt.ResolveException: unresolved dependency: org.scalatest#scalatest_2.12;2.2.6: not found
[error] (*:ssExtractDependencies) sbt.ResolveException: unresolved dependency: org.scalatest#scalatest_2.12;2.2.6: not found
[error] Total time: 4 s, completed 08-Nov-2016 22:24:34</pre><br/>

我已经安装了 JetBrains Scala 插件,然后打开了一个带有 SBT 构建的目录并重置/重新启动了我的缓存(文件 - > 使缓存无效/重新启动)。但它仍然不起作用!有谁知道为什么?

最佳答案

您的 scalatest 依赖项配置错误。您希望为 Scala 2.12 发布 Scalatest 2.6 版。没有这样的组合,因此您的构建失败。如果您想了解 Scala 2.12 可使用哪个版本的 scalatest,请查看 link .如您所见,它只有 3.0.0 版。因此,您有 3 个选项(这些是您需要在 build.sbt 文件中进行的更改):

  • 将您的 Scalatest 版本更新到 3.0.0:libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % Test
  • 将 Scala 版本降级到 2.11:scalaVersion := "2.11.8"
  • 以上均

  • 我想说现在使用 Scala 2.12 还为时过早,因为它在几天前才发布,而且还没有发布所有的依赖项。 Scala 主要版本(2.11 与 2.12 是 Scala 的主要版本升级)不是二进制兼容的,因此您不能在使用另一个 Scala 版本的项目中使用使用另一个版本编译的库。

    同时,我会使用 scalatest 3.0.0 版本,因为它是稳定版本。总而言之,我现在会选择选项 3,尽管选项 1 和选项 2 将以不同的方式解决这个特定问题。

    关于scala - SBT 项目刷新失败 [IntelliJ、Scala、SBT],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40497654/

    相关文章:

    scala - POST 请求 Play 2.3.x 后在 Play 中重定向

    scala - Akka 和 future 的同时请求太多

    scala - 不变性设计(在 Scala 中)

    java - 从类路径文件获取输入流

    intellij-idea - Intellij 过滤查找用法/调用层次结构

    intellij-idea - 配置 IntelliJ 以运行 Groovy Cucumber Geb 框架

    scala - 为什么 sbt 报告 "Error: Could not retrieve sbt 0.13.11"?

    playframework - 如何将Play 2.2 Scala应用程序创建为SBT子项目

    scala - 如何过滤 sbt 监视更改的文件?

    scala - 创建一个函数,返回几个 bool 谓词的逻辑 OR