Руководство для начинающих по SBT 0.10 и IDEA

Я новичок в SBT и не знаю, как начать проект. Может ли кто-нибудь указать мне руководство для начинающих по созданию проекта типа Hello World или дать мне несколько подсказок?

Моя предпочтительная IDE - это IDEA. Я выполнил sbt-idea в соответствии с инструкцией на странице Плагины IDEA. На данный момент я немного смущен, потому что

  • нет исходных папок, созданных - где/как я должен их создавать и как SBT знает, где искать?
  • Почему он пытается использовать Scala 2.8.1, когда я уже поместил scalaVersion := "2.9.0" в файл build.sbt? Это означает, что IDEA не распознает object HelloWorld extends App {}.
  • инструкции на странице плагинов выше предлагают изменить параметры перед запуском "Конфигурация запуска (включая конфигурацию запуска по умолчанию)". Есть 13 различных конфигураций по умолчанию для разных вещей, перечисленных - какой из них изменить? Должен ли я создавать новый? Являются ли эти конфигурации по умолчанию только для этого проекта или это будет отрицательно влиять на все мои другие проекты, которые не используют SBT?

Спасибо.

Ответ 1

Это сработало для меня:

Сначала получите sbt и плагин gen-idea...

  • Загрузите файл sbt-launch.jar и создайте script для его запуска, как описано в SBT Github wiki.
  • Создайте каталог для вашего нового проекта, например (в linux) ~/myCode/myNewProject и перейдите в этот каталог
  • Запустите команду sbt. Это должно загрузить библиотеки scala и создать каталоги 'project' и 'target'.
  • Перейдите в каталог 'project'.
  • Создайте новый файл 'build.sbt' в этом каталоге со следующими строками, как описано в плагин sbt-idea Github wiki:

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
    
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.0.0")
    
  • Вернитесь в главную директорию проекта, например ~/myCode/myNewProject. Запустите sbt. Он должен загрузить плагин gen-idea.

  • На консоли sbt (которая должна выполняться сейчас) запустите команду gen-idea. Он должен создать каталоги проектов проекта IDEA. Для меня это также вызывает обильные предупреждения.

Теперь подключите плагин консоли IDEA SBT...

  • Откройте IDEA и установите плагин "SBT" из диспетчера плагинов и перезапустите IDEA. (Обратите внимание, что это плагин IDEA, а не плагин sbt, описанный выше). Настройте плагин SBT как описано в его вики (выполните конфигурации, местоположение sbt-launch.jar и т.д.).
  • Откройте недавно созданный проект IDEA в IDEA.
  • Поместите свой код и другие вещи в ожидаемые каталоги по умолчанию, как описано в sbt wiki в разделе "Макет каталога" . Вам нужно создать эти каталоги самостоятельно - sbt не создает их автоматически. Каталоги 'src' и 'test' должны находиться на том же уровне, что и каталоги 'project' и 'target', созданные sbt.
  • Создайте новый файл 'build.sbt' и поместите его в ~/myCode/myProject (или как вы его называете). Поскольку я просто вычисляю sbt, мой прост до сих пор - просто назначает scalatest как зависимость и использует scala 2.9:

    name := "myProject"
    
    version := "0.1"
    
    organization := "me"
    
    libraryDependencies += "org.scalatest" % "scalatest_2.9.0" % "1.6.1"
    
    scalaVersion := "2.9.0"
    
  • Введите команду reload в консоли SBT в нижней части экрана IDEA. Он должен скачать скалят и scala 2.9 для вас. Возможно, вам также нужно запустить "обновление".

Ответ 2

Я написал очень быстрое руководство об этом. Он не предназначен для руководства SBT - нет возможности превзойти SBT Wiki. Это было бы бессмысленно, так как можно просто внести вклад в вики.

Но я думаю, что мой очень быстрый справочник поможет вам работать и работать, как вы пожелаете.

Что касается создания каталога, я получил ответ, что SBT ожидает, что IDE справится с этим - мне не очень нравится это отношение, но плагин может выполнить эту работу. Вы увидите, что я устанавливаю плагин sbt eclipse только так, чтобы он сделал это для меня, хотя я сам использую IDEA (когда я использую IDE).

Также обратите внимание, что в идеале вы используете как плагин IDEA для SBT, упомянутый вами, так и плагин SBT для IDEA. См. здесь для списка плагинов.

Если плагин IDEA не развился много, вам действительно нужно создать конфигурацию IDEA от SBT iself - IDEA не будет "читать" вашу конфигурацию. Это то, что делает плагин SBT для IDEA. Установите его и sbt gen-idea. Я ожидаю, что это решит проблему, о которой вы упомянули.

Обратите внимание, однако, что версия Scala, которую вы используете для компиляции вашего проекта, и версия Scala, которую использует SBT для себя, действительно различны. Это не проблема, так и ожидалось. Я не уверен в вашем вопросе, если вы упомянули версию 2.8.1, используемую SBT, или одну, используемую IDEA, или даже одну, используемую для компиляции вашего проекта, что указывает на то, что что-то не работает.

Где вы упоминали пример, который вы упомянули? Вы должны следовать иерархии каталогов в стиле maven, что означает, что он помещается в src/main/scala/ и, возможно, в подкаталог, связанный с пакетом, если вы также следуете за соглашением Java.

И попытайтесь скомпилировать с помощью sbt, чтобы убедиться, что он работает, прежде чем перейти к IDEA.

Ответ 3

Я обычно помещаю src в папку "src/test/ scala" и "src/main/scala". sbt-idea добавит эту папку ase source/test в идею.

sbt сам нуждается в Scala 2.8.1, но эта версия не имеет ничего общего с версией вашего кода. Если вы попытаетесь скомпилировать некоторый источник, sbt загрузит Scala 2.9.0.