我正在学习scala跟随这个带有docker image hseeberger/scala-sbt的tutorial
使用build.sbt的第一个版本
libraryDependencies += "joda-time" % "joda-time" % "2.10.2"
一切都很好。
这段代码(snippet_1)
import org.joda.time._
var dt = new DateTime
我得到了我想要的。
使用build.sbt的第二个版本
libraryDependencies ++= Seq{
"joda-time" % "joda-time" % "2.10.2";
"org.joda" % "joda-convert" % "2.2.1"
}
snippet_1收到此错误
<console>:7: error: object time is not a member of package org.joda
import org.joda.time._
^
与那个tutorial的唯一区别是,我在build.sbt中用;
替换了,
,因为,
会导致错误。
此命令来自此post
sbt eclipse
导致此错误
[warn] Executing in batch mode.
[warn] For better performance, hit [ENTER] to switch to interactive mode, or
[warn] consider launching sbt without any commands, or explicitly passing 'shell'
[info] Loading project definition from /root/project
[info] Set current project to root (in build file:/root/)
[error] Not a valid command: eclipse (similar: help, alias)
[error] Not a valid project ID: eclipse
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: eclipse (similar: deliver, licenses, clean)
[error] eclipse
[error] ^
有什么想法吗?
发布于 2019-06-20 19:51:48
问题是:
Seq{
"joda-time" % "joda-time" % "2.10.2";
"org.joda" % "joda-convert" % "2.2.1"
}
大括号表示以代码块的形式向Seq
传递单个参数。代码块的值始终是块中最后一行的值-在本例中为"org.joda" % "joda-convert" % "2.2.1"
。永远不会添加joda-time
依赖项。
您可以通过使用圆括号和逗号为Seq
提供多个参数来解决此问题
Seq(
"joda-time" % "joda-time" % "2.10.2",
"org.joda" % "joda-convert" % "2.2.1"
)
特别要注意的是:
与该教程的唯一不同之处在于,我在build.sbt as中用;替换了,这会导致错误。
;
和,
在Scala中有完全不同的含义,不能互换。如果你发现自己需要进行替换,你应该停下来检查一下你正在做什么。
https://stackoverflow.com/questions/56685088
复制相似问题