Неразрешенная зависимость SBT 0.13.0 после обновления

Обновите SBT до 0.13.0:

У меня есть пара проектов, написанных с использованием Scala 2.10.2, и сборка с использованием sbt 0.12.4. Поскольку моей операционной системой является Ubuntu, я использовал пакет SBT.deb для установки sbt 0.12.4. Все в порядке. Я строил свои проекты с помощью sbt.

Вчера я хотел обновить sbt до версии 0.13.0. Я скачал и установил новый пакет .deb. Конфигурация проектов не была изменена.

Ошибка:

При запуске SBT после обновления я получаю эту ошибку:


$ sbt
Loading /usr/share/sbt/bin/sbt-launch-lib.bash
Getting org.scala-sbt sbt 0.13.0 ...

:: problems summary ::
:::: WARNINGS
        module not found: org.scala-sbt#sbt;0.13.0

    ==== local: tried

      /home/myUser/.ivy2/local/org.scala-sbt/sbt/0.13.0/ivys/ivy.xml

        ::::::::::::::::::::::::::::::::::::::::::::::

        ::          UNRESOLVED DEPENDENCIES         ::

        ::::::::::::::::::::::::::::::::::::::::::::::

        :: org.scala-sbt#sbt;0.13.0: not found

        ::::::::::::::::::::::::::::::::::::::::::::::



:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
unresolved dependency: org.scala-sbt#sbt;0.13.0: not found
Error during sbt execution: Error retrieving required libraries
  (see /home/myUser/.sbt/boot/update.log for complete log)
Error: Could not retrieve sbt 0.13.0

Файл ~/.sbt/update.log доступен здесь: http://ubuntuone.com/6RDMgOqMnxdyKgfzrWVUNP Файл ~/.sbt/boot/.update.log доступен здесь: http://ubuntuone.com/4KqYnSL9Mc1yrmRLbCx6bI

Как исправить это разрешение зависимостей?

Подозреваемые:

  1. У других людей были похожие проблемы, такие как this, но не то же самое. Я не думаю, что это проблема несовместимости определений сборки, а вы? Насколько я понимаю, SBT не доходит до того, чтобы прочитать определение проекта.

  2. Откуда этот файл должен быть восстановлен? Разве это не должно быть включено в установочный пакет SBT? Также похоже, что SBT/Ivy смотрит только внутри локального репо Ivy. В центральном репозитории Maven нет артефакта SBT с версией 0.13.0. Нужно ли указывать другое репо или что-то еще?

  3. А как насчет версии Scala? Разве это не должно быть указано в определении зависимости? Нужно ли где-то указывать версию Scala?

Конфигурация проекта:

Файл: build.sbt:


name := "MyProject"

version := "1.0-SNAPSHOT"

organization := "myOrg"

scalaVersion := "2.10.2"

libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "0.4.2"

Файл: project/plugins.sbt:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.3.0")

Файл: project/build.properties

До этой проблемы у меня не было этого файла. Я добавил это, пытаясь решить эту проблему:

sbt.version=0.13.0

Ответы

Ответ 1

Я добавил несколько ссылок на ~/.sbt/repositories. Это решило проблему. Теперь файл выглядит следующим образом:

[repositories]
  local
  sbt-releases-repo: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  sbt-plugins-repo: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  maven-central: http://repo1.maven.org/maven2/

Вы также должны посмотреть на это: http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Proxy-Repositories.html

Но меня все еще беспокоит вопрос, если это отдельный случай для меня и моей системы, или если у других есть такие проблемы. Я что-то неправильно понял? Потому что, если я хочу использовать инструмент построения, я не думаю, что моя обязанность заботиться об зависимостях инструмента после установки. Это должно быть сделано самой установкой инструмента.

Конечно, моя ответственность - заботиться о моих зависимостях проекта.

Ответ 2

Я столкнулся с той же проблемой, оказался pebcak (конечно), указав 0.13 вместо 0.13.0 в project/build.properties

Выполнение вывода в .sbt/boot/update.log было очень полезно и привело меня к этой проблеме (особенно после того, как я заметил, что sbt работает нормально в ~/- загрузке себя - я заметил, что ivy.xml он смотрел для не совпадает с тем, который он загрузил из этой более ранней попытки в ~/)

Ответ 3

У меня было подобное сообщение об ошибке, когда моя версия Java на OSX была 1.6. Обновление для версии 1.8 исправлено для меня.