Руководство для начинающих по 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.