Руководство для начинающих по 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?
Благодарю.
3 ответа
Это сработало для меня:
Сначала запустите sbt и плагин gen-idea...
- Скачайте sbt-launch.jar и создайте скрипт для его запуска, как описано в вики SBT Github.
- Создайте каталог для вашего нового проекта, например (в Linux) ~/myCode/myNewProject, и перейдите в этот каталог.
- Бежать
sbt
команда. Это должно загрузить библиотеки scala и создать каталоги 'project' и 'target'. - Перейдите в каталог "project".
Создайте в этом каталоге новый файл build.sbt со следующими строками, как описано в плагине sbt-idea для Github:
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 в разделе " Расположение каталогов". Вам нужно создать эти каталоги самостоятельно - 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. Он должен загрузить ScaleAT и Scala 2.9 для вас. Может быть, вам нужно запустить "обновление" тоже.
Я написал очень краткое руководство по этому поводу. Он не предназначен для руководства 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.
Я обычно помещаю src в папку "src / test / scala" и "src/main/scala". sbt-idea добавит эти папки как исходную / тестовую папку в идею.
Самому sbt нужна Scala 2.8.1, но эта версия не имеет ничего общего с версией вашего кода. Если вы попытаетесь скомпилировать какой-либо исходный код, sbt скачает Scala 2.9.0.