Версии sbt и версии scala. конфигурация проекта для идеи intellij с плагином sbt-idea

Я следую этим шагам, чтобы настроить проект для идеи IntelliJ.

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.2.0")

Я использую sbt-idea для sbt версии 0.12 с фиксированным ошибка для Idea.

Когда я печатаю sbt в моем каталоге проектов, я заметил, что он использует scala 2.9.2.. но я собираюсь использовать scala 2.10.1 для моего проекта.

Вопросы:

Имеет ли смысл, какую версию scala использовать для плагинов (s) (~/.sbt/plugins) - компиляцию, или я должен использовать одну/ту же версию scala для всего? Могу ли я изменить версию scala для плагинов?

Итак, я создал файл ~/.sbt/plugin/build.sbt с указанным контентом.

Ответ 1

Собственно, я понял.

  • если у вас есть проект с build.sbt (который использует файл 2.10.1 scala) - как только вы наберете sbt.. все зависимости будут загружены в папку ~/.sbt - даже scala будет загружен там (~/.sbt/boot). Это может быть даже несколько версий scala: 2.10.1 и 2.9.2, например.

  • и о sbt-idea и ~/sbt/plugins.. он может любой версии scala - в зависимости от файла build.sbt, например, в моем случае:

resolvers + = "Сонатные снимки соната" в " http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.2.0-SNAPSHOT")

Я бы заметил, если попробую другую версию.. вроде 1.1.0-M2-TYPESAFE, это не сработает.. (по крайней мере, в моем случае) - < Тогда команда t27 > недоступна. Я не знаю почему. Думаю, это должно быть.

Также, если вы не укажете resolvers += - это не сработает... но это не расскажет вам об этом.

Этот плагин использует scala 2.9.2 - мы не можем видеть его здесь, но мы можем видеть его из тех выходов, которые он производит при установке/загрузке. Поэтому мы имеем ~/.sbt/boot/scala-2.9.2/.

В любом случае мы не должны заботиться об этом. Он обрабатывается sbt.

Когда вы преобразовали свой sbt-проект в проект intellij-idea, набрав gen-idea в sbt-консоли, в результате ваш проект IDE будет ссылаться на ~/.sbt/scala, но не на ваш-где-то установленный scala.. Поэтому даже не нужно указывать расположение scala - sbt-idea sbt-плагин выполнит всю работу. И это хорошо!

Это ответ, который я хотел получить. Его можно понять/понять, попробовав его.

Ответ 2

эта версия устарела, она зависит от sbt-idea 1.2.0-SNAPSHOT. Последний на момент написания статьи - 1.3.0

Посмотрите мой проект skeleton для реализации с использованием последних версий плагинов проекта scala, scalatest и SBT для IDE.