Scala sbt: множественные зависимости в sbt

Я новый пользователь Scala, следуя пути создания проекта scala sbt.

https://www.youtube.com/watch?v=Ok7gYD1VbNw


После добавления

libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"

в build.sbt и обновил проект, я получил это сообщение.

[предупреждение] Множественные зависимости с одной и той же организацией / названием, но с разными версиями. Чтобы избежать конфликта, выберите одну версию:

[предупреждение] * org.scala-lang: scala-reflection: (2.11.2, 2.11.7)

[предупреждение] * org.scala-lang.modules: scala-xml_2.11: (1.0.2, 1.0.4)

А в build.sbt слово scalatest красного цвета, что означает неразрешенные зависимости.

Следует ли мне что-то изменить в настройках проекта, например scala sdk?

С наилучшими пожеланиями!


person Eason Caizhen Liu    schedule 26.12.2015    source источник
comment
как только он предупреждает, это не должно быть проблемой. проверьте errors. Если есть - распечатайте их здесь.   -  person vvg    schedule 26.12.2015
comment
Если вы используете IntellJ Idea, все может быть красным в build.sbt, но оно все равно будет компилироваться. Парсер IDE иногда не может анализировать материал (в том числе код Scala), поэтому обычно вы можете просто игнорировать красный материал, пока он компилируется. То же, вероятно, верно и для других IDE.   -  person Archeg    schedule 26.12.2015
comment
@Archeg Если моя конфигурация верна, я могу запустить тестовый файл, верно? На данный момент я даже не могу запустить в IDE, щелкнув файл правой кнопкой мыши.   -  person Eason Caizhen Liu    schedule 28.12.2015
comment
Вы разместили просто предупреждение, которое, вероятно, не имеет ничего общего с неработоспособным состоянием. Что он говорит, когда вы пытаетесь его запустить?   -  person Archeg    schedule 28.12.2015


Ответы (2)


Вы можете добавить эти зависимости:

libraryDependencies ++= Seq(
  "org.scala-lang" % "scala-reflect" % "2.11.7",
  "org.scala-lang.modules" % "scala-xml_2.11" % "1.0.4"
)

Это заставляет компилятор выбирать конкретную версию библиотек. Для меня это решает проблему.

person Bartłomiej Szałach    schedule 02.01.2016
comment
Интересно, почему Идея не может разобраться сама с scalaVersion := "2.11.7" в build.sbt - person Ivan Balashov; 22.07.2016
comment
В большинстве случаев это работает, однако у меня проблемы с версиями 1.0.4 и 1.0.5 из org.scala-lang.modules:scala-xml. Я дошел до того, что очистил их от кеша плюща, но безрезультатно. - person ZbyszekKr; 01.09.2016

Я смог решить эту проблему, исключив их из зависимости scalatest.

libraryDependencies ++= Seq(
  "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"
    exclude("org.scala-lang", "scala-reflect")
    exclude("org.scala-lang.modules", "scala-xml_2.11")
)
person Dillon Ryan Redding    schedule 05.09.2016
comment
Я предпочитаю это тому, что указано в ответе Бартломея Шалаха. - person ivanorone; 11.11.2016