2014-11-06 71 views
21

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

我下载了新的IntelliJ IDEA 14 CE应用程序并安装了它。我目前正在导入这个项目,并且它失败了,因为它想要一个0.12.4或更高的sbt版本。发生在13

Build failing

这个问题一天,但我还没有来得及解决它,所以请,不建议再回到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,但都大于0.13。

非常感谢您的帮助!

回答

36

我查看了曼宁网站的代码示例,并且每个项目的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并使用该版本来构建该项目。

+1

谢谢。这为我解决了这个问题,并为我澄清了很多。我希望我能够比以往更快乐。 – 2014-11-07 01:29:43

+1

不客气!顺便说一下,如果您有兴趣更好地了解SBT,我可以推荐本书“SBT in Action”(目前可作为Manning Publishing的早期访问预览版,尚未完成) - 但有关[the SBT网站](http://www.scala-sbt.org/documentation.html)是一个很好的开始。 – 2014-11-07 12:34:13

+0

谢谢,我认为我对Scala的失望主要来自缺乏理解,所以这可能会让我的生活更轻松。干杯,非常感谢您的帮助和建议! – 2014-11-08 23:48:39