Как создать проект SBT с IntelliJ Idea?

Я только начал с разработки Scala/LiftWeb/Sbt, и я хотел бы импортировать проект Sbt в IntelliJ Idea. На самом деле, мне удалось импортировать мой проект двумя разными способами:

1) с Maven. Я создал проект Maven, и, кроме того, я создал проект Sbt, который затем импортировал в IntelliJ. Тогда я мог бы легко начать, остановить сервер причала и сделать другие вещи. Но это не то, чего я хочу. Я хочу делать то же самое, только без Maven. Это привело меня к ...

2) с Eclipse. Итак, я создал новый проект Sbt (с небольшим сценарием, который я написал, настроив проект Sbt как веб-проект). Затем я использовал плагин sbt-eclipsify для "преобразования" проекта для Eclipse, который я затем импортировал в IntelliJ (существующий источник -> eclipse). Но проблемы начались здесь: я не могу заставить плагин IntelliJ Sbt работать.

может кто-нибудь помочь мне с этим?

7 ответов


существует три основных способа создания проекта - современные версии IntelliJ могут импортировать проект sbt из коробки, иначе вы можете использовать плагин sbt для создания проекта IntelliJ или использовать плагин IntelliJ Scala для создания проекта sbt. Основные функции работают из коробки, используя оба решения, некоторые сложные сборки могут иметь проблемы, поэтому попробуйте другие инструменты, чтобы увидеть, работает ли он там.

IntelliJ

IntelliJ идея стала намного лучше в эти дни. Этот текущая версия (14.0.2) поддерживает проекты sbt из коробки с плагином Scala. Просто установите плагин, и вы сможете открывать проекты Scala/sbt без каких-либо проблем.

Scala plugin under Plugins in Preferences

с плагином просто укажите на проект sbt, и IDEA предложит вам мастер для открытия такого проекта.

Import sbt project

Плагин IntelliJ Scala

плагин IntelliJ можно найти здесь http://confluence.jetbrains.com/display/SCA/Scala + плагин+для + IntelliJ + IDEA или может быть установлен directoly из IDE с помощью диалогового окна настройки - > плагины. После этого можно просто сделать Файл - > Новый проект - > Scala - > SBT. IntelliJ будет генерировать базовую сборку.sbt, загрузите необходимые зависимости и откройте проект.

SBT плагин

плагин Sbt, который генерирует проект идеи на основе файлов sbt, можно найти здесь: https://github.com/mpeltonen/sbt-idea

SBT 12.0+ & 13.0+

просто добавить addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") на build.sbt; не требуются дополнительные преобразователи.

Старые Версии:

SBT 0.11+

создайте и добавьте следующие строки в ~/.sbt/plugins/build.sbt или PROJECT_DIR/project/plugins.sbt

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

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

использовать gen-idea в sbt для создания файлов проекта идеи.

по умолчанию, классификаторы (т. е. источники и javadocs) зависимостей sbt и библиотеки загружаются, если найдены и ссылки добавлены в файлы проекта IDEA. Если вы не хотите загружать/ссылаться на них, используйте command gen-idea no-classifiers no-sbt-classifiers.


SBT 0.10.1 (по словам автора плагина, 0.10.0 не работать!)

создайте и добавьте следующие строки в~/.СБТ/Плагины/сборки.sbt:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0"

использовать gen-idea задач " СБТ " создать проект идея файлы.

по умолчанию, классификаторы (т. е. источники и javadocs) зависимостей sbt и библиотеки загружаются, если найдены и ссылки добавлены в файлы проекта IDEA. Если вы не хотите загружать/ссылаться на них, используйте command gen-idea no-classifiers no-sbt-classifiers.


SBT 0.7

чтобы использовать его, просто запустите это из своей оболочки sbt, он будет использовать плагин в качестве внешней программы:

 > *sbtIdeaRepo at http://mpeltonen.github.com/maven/
 > *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
 ...
 > update
 ...
 > idea
 ...

вы также можете добавить признак в определение проекта, как вы хочу:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}

сейчас я делаю это вручную. Это очень просто.

  1. создайте проект с помощью SBT
  2. создайте новый проект идеи с тем же корневым путем
  3. создайте модуль с тем же корневым путем
  4. установите src / main / scala в качестве пути src на модуле
  5. установите src / test / scala в качестве тестового пути на модуле
  6. добавить скала-библиотеки.jar как библиотеку
  7. добавить lib (если он присутствует) в качестве каталога jar в модуле библиотека
  8. добавить lib_managed / compile (если он присутствует) как каталог jar в библиотеке модулей
  9. добавить lib_managed / test (если он присутствует) в качестве каталога jar в библиотеке модулей

Это по памяти. Было бы лучше, если бы он был автоматизирован, но это не так важно, как сейчас.

одно примечание: вышеуказанный подход не работает хорошо с новой школой sbt, т. е. версиями 0.10 и новее, потому что он не копирует зависимости в lib_managed по умолчанию. Вы можете добавить

retrieveManaged := true

в сборку.sbt, чтобы скопировать зависимости в lib_managed.


Темпус fugit и IntelliJ идея стала намного лучше в эти дни. Ведь сейчас 2015 год, не так ли?

сказав, что последняя версия IntelliJ IDEA 14.0.2 поддерживает проекты sbt из коробки с плагин Scala. Просто установите плагин, и вы сможете открывать проекты Scala/sbt без особых проблем.

Scala plugin under Plugins in Preferences

Я использую раннюю версию плагина, которая is 1.2.67.6.EAP на момент написания.

с плагином просто укажите на проект sbt, и IDEA предложит вам мастер для открытия такого проекта.

Import sbt project

о sbt-идея в sbt 0.12.4

для sbt 0.12.4 файл конфигурации общесистемного плагина -~/.sbt/plugins/build.sbt или PROJECT_DIR/project/plugins.sbt - должны иметь следующие строки:

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

addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")

Run sbt gen-idea для создания файлов проекта идеи.

читать веб-сайт плагина sbt-idea для получения более актуальной информации. Вы также можете найти мою запись в блоге импорт проекта на основе sbt в IntelliJ IDEA 13 (с sbt-idea, Scala 2.11 и sbt 0.12) полезное.


для sbt 0.7

посмотреть ответ в другом месте на этой странице.

для sbt 0.10

клонирование и сборка sbt-идеи Исмаэля:

git clone https://github.com/ijuma/sbt-idea.git
cd sbt-idea
git checkout sbt-0.10
./sbt package

создайте каталог lib плагина sbt, если у вас его еще нет

mkdir -p  ~/.sbt/plugins/lib

скопируйте банку, встроенную в первый шаг, сюда

cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib

перезагрузите или перезагрузите sbt, затем вы можете запустить gen-idea (или gen-idea with-classifiers если вы хотите источники и javadoc в intelliJ too)

источник: предложение Такеров по группе сообщений.

в IDEA IntelliJ 13.сам х

вы можете открыть проект на основе SBT в IDEA в настоящее время. Он создаст необходимый проект и модули и обновит ваши зависимости при внесении изменений в сценарии сборки.


Я только что прошел через всю эту боль. Я трачу дни, пытаясь получить приемлемую среду и пришел к выводу, что ENSIME, SBT и JRebel будут моей средой разработки в течение некоторого времени. Да, он возвращается к Emacs, но ENSIME превращает его в бит или идею с рефакторингом, поддержкой отладки, навигацией и т. д. Это далеко не так хорошо, как Eclipse (Java), но если Плагины scala работают лучше, это лучшее, что у нас есть.

до Scala среды разработки встают на дыбы (Eclipse или IntelliJ), я не собираюсь беспокоиться. Они просто слишком глючные.

см. обсуждение на сайте лифта.

http://groups.google.com/group/liftweb/browse_thread/thread/6e38ae7396575052#

в этом потоке есть ссылка на HOWTO для IntelliJ, но, хотя он работает, есть много проблем, которые делают его немного меньше, чем полезный.

http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/comment-page-1/


ответы стары для 2014 года. В IntelliJ 13.x, плагин Scala является ver 0.41.2 (SBT включен).

мой SBT версия 0.13.5 (терминал : sbt sbtVersion )

перейдите в корневую папку проекта и введите в терминале

sbt idea

вы увидите две новые скрытые папки .идея!--4--> и .idea_modules.

затем в IntelliJ, Файл > Открыть > выберите проект. Он должен открыть проект без каких либо проблем.


перед началом создания проекта SBT убедитесь, что плагин Scala загружен и включен в IntelliJ IDEA.

ниже ссылка объясняет все, что нужно знать.

https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html