объект time не является членом пакета org.joda - PullRequest
1 голос
/ 20 июня 2019

Я изучаю scala, следуйте этому учебнику с изображением докера 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]        ^

есть идеи?

1 Ответ

4 голосов
/ 20 июня 2019

Проблема заключается в следующем:

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 и не являются взаимозаменяемыми.Если вам понадобится произвести такую ​​замену, вам следует остановиться и проверить, что вы делаете.

...