小编Eri*_*yte的帖子

项目导入需要0.12.4+

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

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

建立失败

这个问题发生在前一天的13,但我没有时间解决它,所以请,没有建议回到13 :)

这是问题的关键:当我sbt --version在CLI上键入时,它打印出sbt launcher version 0.13.6.我有一个"更大"的版本,但看起来IDEA无法识别这一点.

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

正如您可能已经猜到的那样,我使用Homebrew来安装和管理Scala和sbt.当我在二月份开始使用Scala时,我记得我必须在我的设置中进行一些小的调整才能让IDEA找到Scala,但我的IDEA 14版本非常新鲜 - 我没有导入任何以前的设置.我下载了Scala和sbt插件,看起来在粗略查看和创建新测试项目后正确配置.

以下是我无法理解的内容:首先,最明显的是,为什么满足所谓要求(0.12.4+)的sbt版本会因版本0.13而失败.*?

第二,与IDEA捆绑的sbt是否也大于这个版本?在我的系统中某处可能有sbt标志指向早期版本?旁注,我的"酒窖"中有几个版本的sbt,但都超过了0.13.

非常感谢您的帮助!

scala sbt

21
推荐指数
1
解决办法
3822
查看次数

列表上的Scala抽象值成员返回意外结果?

我不确定这是一个bug还是我不太了解Scala.今天我在REPL中玩了一些列表功能.这是我做的:

首先,我创建了一个列表:

scala> val myList = List(1.0, 2.0, 3.0)
myList: List[Double] = List(1.0, 2.0, 3.0)
Run Code Online (Sandbox Code Playgroud)

接下来,我通过添加另一个double来创建另一个列表:

scala> val newMyList = 4.0 :: myList
newMyList: List[Double] = List(4.0, 1.0, 2.0, 3.0)
Run Code Online (Sandbox Code Playgroud)

现在,当我在newMyList上请求productArity(List.productArity)时:

scala> print(newMyList.productArity)
2
Run Code Online (Sandbox Code Playgroud)

它似乎仍然以不同于其他列表的方式处理第一个列表.这是一个预期的行为还是一个错误?

scala> print(newMyList.productElement(0))
4.0
scala> print(newMyList.productElement(1))
List(1.0, 2.0, 3.0)
Run Code Online (Sandbox Code Playgroud)

注意,我在尝试访问高于0的元素时得到java.lang.IndexOutOfBoundsException,1应该返回2.0,而3应该返回3.0,对吧?

scala arity

0
推荐指数
1
解决办法
65
查看次数

标签 统计

scala ×2

arity ×1

sbt ×1