Как заставить sbt-idea работать в проекте scala-2.10?

У меня было много проблем с тем, чтобы заставить sbt-идею работать в моем проекте Scala 2.10.

Я пробовал компилировать sbt-idea из его git-репо, убедившись, что установить

scalaVersion := "2.10.0-RC5"

в build/Build.scala и используя publish-local Команда для компиляции в Git. Но я все же продолжаю получать

[error] sbt.IncompatiblePluginsException: Binary incompatibility in plugins detected.

когда я затем использую это в моей опубликованной версии, скажем, просто добавив

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

к project/plugins.sbt файл.

2 ответа

Не думайте, что вам нужно собрать SBT для Scala 2.10. Я храню свои генераторы проектов gen-idea и eclipse в глобальном файле build.sbt, и он работает для всех моих проектов (или так кажется;-)

Я использую Ubuntu, поэтому файлы конфигурации SBT, сохраненные на вашем компьютере, могут отличаться.

Создайте папку с именем plugins в скрытом каталоге sbt. В Linux это находится по адресу ~/.sbt (где тильда - это псевдоним вашего домашнего каталога). Так что теперь вы должны иметь ~/.sbt/plugins

Затем создайте файл с именем build.sbt под этим каталогом и добавьте следующее:

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

resolvers += "Sonatype releases"  at "https://oss.sonatype.org/content/repositories/releases/"

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

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

Чтобы проверить, я только что сгенерировал проект scala 2.10 с ним, и это кажется нормальным.

О, файл выше также добавляет поддержку eclipse Команда в SBT, если вы хотите создавать проекты Scala-IDE.

Я смог использовать более старую версию gen-idea добавив следующее в project/plugins.sbt в самом проекте:

import sbt._

import Defaults._

libraryDependencies += sbtPluginExtra(
    m = "com.github.mpeltonen" % "sbt-idea" % "1.2.0", // Plugin module name and version
    sbtV = "0.12",    // SBT version
    scalaV = "2.9.2"    // Scala version compiled the plugin
)
Другие вопросы по тегам