【问题标题】:Sbt 0.12.4+ required on project import项目导入需要 Sbt 0.12.4+
【发布时间】:2015-01-02 21:02:24
【问题描述】:

我目前正在阅读 Peter Hilton(出版商:Manning)的 Play for Scala: Covers Play 2 书,并试图坚持他们在书中概述的版本(Play 版本 2.1.1)。

我下载并安装了新的 IntelliJ IDEA 14 CE 应用程序。我目前正在导入项目,但它失败了,因为它需要 0.12.4 或更高版本的 sbt。

前几天13号就出现了这个问题,但是一直没来得及解决,所以请不要建议回到13号:)

这是问题的实质: 当我在 CLI 上键入 sbt --version 时,它会打印 sbt launcher version 0.13.6. 我有一个“更大”的版本,但 IDEA 似乎无法识别它。

为了指定我自己的 SBT 启动器 JAR,我将自定义启动器(在 IDEA 全局设置中)指向/usr/local/Cellar/sbt/0.13.6/libexec/sbt-launch.jar 中的启动器,但构建也失败并出现同样的错误。

此时您可能已经猜到了,我使用 Homebrew 来安装和管理 Scala 和 sbt。当我在 2 月份第一次开始使用 Scala 时,我记得必须对我的设置进行一些小调整才能让 IDEA 找到 Scala,但我的 IDEA 14 版本是全新的——我没有导入任何以前的设置。我下载了 Scala 和 sbt 插件,粗略查看并创建了一个新的测试项目后,它们似乎已正确配置。

这是我无法理解的: 首先,也是最明显的,为什么满足假设要求 (0.12.4+) 的 sbt 版本会因版本 0.13.* 而失败?

其次,与IDEA捆绑的sbt是否也比这个版本大?我的系统中是否可能有一个 sbt 标志指向早期版本?附带说明一下,我的“地窖”中有几个版本的 sbt,但都大于 0.13。

非常感谢您的帮助!

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    我查看了 Manning 网站上的代码示例,每个项目的 project/build.properties 文件都指定了 sbt.version=0.12.2。我的猜测是 Intellij Scala 插件仅支持 SBT 0.12.4,并且无法导入配置为使用旧版本的项目(因此它建议您“更新项目定义”)。

    您应该尝试在project/build.properties 文件中使用sbt.version=0.12.4

    一般来说,请记住,当project/build.properties 中指定了 SBT 版本时,SBT 启动器会下载指定的版本并使用它来构建项目。在您的情况下,这意味着 SBT 0.13.6 启动器将下载 SBT 0.12.2 并使用该版本来构建项目。

    【讨论】:

    • 谢谢。这为我解决了这个问题,并为我澄清了很多。我希望我能不止一次地对此表示赞同。
    • 不客气!顺便说一句,如果您有兴趣更好地了解 SBT,我可以推荐《SBT in Action》一书(目前可作为 Manning Publishing 的早期访问预览版,尚未完成)-但@987654321 上的文档@ 也是一个很好的起点。
    • 谢谢,我认为我对 Scala 的大部分挫败感来自于对 sbt 缺乏理解,所以这可能会让我的生活更轻松。干杯,非常感谢您的帮助和建议!
    • @EricKeyte 我为你做的 :)
    • 我尝试在 14.1.4 Ultimate 中编辑该文件,关闭并重新打开项目,并在底部的状态行中看到重复的“SBT:[error] Type error in expression”。我最终杀了它。有谁有 14 的运气吗?
    猜你喜欢
    • 2017-02-19
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2017-01-02
    • 2018-11-10
    • 1970-01-01
    • 2013-07-27
    相关资源
    最近更新 更多