Руководство для начинающих по SBT 0.10 и IDEA - PullRequest
11 голосов
/ 12 августа 2011

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

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

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

Спасибо.

Ответы [ 3 ]

16 голосов
/ 12 августа 2011

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

Сначала запустите sbt и плагин gen-idea будет запущен ...

  1. Скачайте sbt-launch.jar и создайте скрипт для его запуска.как описано в SBT Github wiki .
  2. Создайте каталог для вашего нового проекта, например (в Linux) ~ / myCode / myNewProject, и перейдите в этот каталог
  3. Запустите команду sbt.Это должно загрузить библиотеки scala и создать каталоги 'project' и 'target'.
  4. Перейти в каталог 'project'.
  5. Создать новый файл '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")
    
  6. Перейдите обратно в каталог основного проекта, например ~/ myCode / myNewProject.Запустите sbt.Он должен загрузить плагин gen-idea.

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

Теперь запустите плагин консоли IDEA SBT ...

  1. Откройте IDEA и установите плагин "SBT" из плагинаменеджер и перезапустите IDEA.(Обратите внимание, что это плагин IDEA, а не плагин sbt, описанный выше.) Настройте плагин SBT , как описано в его вики (конфигурации запуска, расположение sbt-launch.jar и т. Д.).
  2. Откройте недавно сгенерированный проект IDEA в IDEA.
  3. Поместите ваш код и другие вещи в ожидаемые каталоги по умолчанию, как описано в sbt wiki в разделе «Расположение каталогов» .Вам нужно создать эти каталоги самостоятельно - sbt не создает их автоматически.Каталоги 'src' и 'test' должны быть на том же уровне, что и каталоги 'project' и 'target', созданные sbt.
  4. Создайте новый файл '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"
    
  5. Введите команду reload в консоли SBTв нижней части экрана IDEA.Он должен скачать Scales 2.9 и Scala 2.9 для вас.Может быть, вам нужно запустить «обновление» тоже.

4 голосов
/ 12 августа 2011

Я написал очень краткое руководство об этом.Это , а не , предназначенное для руководства 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.

0 голосов
/ 12 августа 2011

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

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

...