对象时间不是org.joda的组成部分

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (5)

我正在学习scala跟随本教程使用docker image hseeberger / scala-sbt

与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._
                       ^

从唯一的区别教程是我取代,;在build.sbt作为,原因的错误。

这个命令来自这篇文章

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]        ^

有任何想法吗?

提问于
用户回答回答于

问题是这样的:

Seq{
    "joda-time" % "joda-time" % "2.10.2";
    "org.joda" % "joda-convert" % "2.2.1"
}

Curly括号表示您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中,导致错误。

;并且,在Scala中具有完全不同的含义,并且不可互换。如果你发现自己需要更换,你应该停下来检查你在做什么。

扫码关注云+社区

领取腾讯云代金券