Jak stworzyć projekt SBT z IntelliJ Idea?

Właśnie zacząłem rozwijać Scala/LiftWeb/SBT i chciałbym zaimportować projekt Sbt do IntelliJ Idea. W rzeczywistości udało mi się zaimportować mój projekt na dwa różne sposoby:

1) z Maven. Stworzyłem projekt Maven, a do tego stworzyłem projekt Sbt, który następnie zaimportowałem w IntelliJ. Mógłbym wtedy łatwo uruchomić, zatrzymać serwer jetty i zrobić inne rzeczy. Ale nie tego chcę. Chcę robić to samo, tylko bez Mavena. Które prowadzą mnie do

2) z Zaćmienie. Tak więc stworzyłem nowy projekt Sbt (z małym skryptem, który napisałem, konfigurując projekt SBT jako WebProject). Użyłem wtedy wtyczki SBT-eclipsify do "konwersji" projektu na Eclipse, którą następnie zaimportowałem w IntelliJ (istniejące źródło -> eclipse). Ale problemy zaczęły się tutaj: nie mogę uzyskać wtyczki IntelliJ SBT do pracy.

Czy ktoś może mi w tym pomóc?

Author: Leif Wickland, 2010-11-23

7 answers

Istnieją trzy podstawowe sposoby tworzenia projektu-nowoczesne wersje IntelliJ mogą importować projekt SBT po wyjęciu z pudełka, w przeciwnym razie możesz użyć wtyczki SBT do generowania projektu IntelliJ lub użyć wtyczki IntelliJ Scala do tworzenia projektu SBT. Podstawowe funkcje działają po wyjęciu z pudełka przy użyciu obu rozwiązań, niektóre złożone Kompilacje mogą mieć problemy, więc wypróbuj inne narzędzia, aby sprawdzić, czy tam działa.

IntelliJ

IntelliJ IDEA stała się teraz o wiele lepsza. Aktualna wersja (14.0.2) obsługuje projekty SBT po wyjęciu z pudełka za pomocą wtyczki Scala. Po prostu zainstaluj wtyczkę i powinieneś być w stanie otworzyć projekty Scala/SBT bez żadnych problemów.

Wtyczka Scala pod wtyczkami w preferencjach

Za pomocą wtyczki wskaż projekt sbt, a IDEA zaoferuje Ci kreatora do otwarcia tego rodzaju projektu.

Import projektu sbt

IntelliJ Scala Plugin

IntelliJ plugin można znaleźć tutaj http://confluence.jetbrains.com/display/SCA/Scala + Plugin + for + IntelliJ + IDEA lub można zainstalować directoly z poziomu IDE za pomocą Ustawienia -> Plugins dialog. Następnie można zrobić Plik - > Nowy Projekt -> Scala - > oparty na SBT. IntelliJ wygeneruje Basic build.sbt, pobierz niezbędne zależności i otwórz projekt.

Wtyczka SBT

Wtyczka SBT generująca projekt idea na podstawie plików SBT znajduje się tutaj: https://github.com/mpeltonen/sbt-idea

SBT 12.0+ & 13.0+

Po prostu dodaj addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") do swojego build.sbt; nie są potrzebne żadne dodatkowe resolvery.

Starsze Wersje:

SBT 0.11+

Utwórz i dodaj następujące wiersze do ~/.sbt/plugins/build.sbt lub PROJECT_DIR/project/plugins.sbt

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

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

Użyj gen-idea w sbt do tworzenia plików projektu IDEA.

Domyślnie klasyfikatory (tj. źródła i Javadoc) zależności sbt i biblioteki są ładowane, jeśli znaleziono i dodano odnośniki do plików projektu IDEA. Jeśli nie chcesz pobierać/odwoływać się do nich, użyj polecenia gen-idea no-classifiers no-sbt-classifiers.


SBT 0.10.1 (według autora wtyczki, 0.10.0 nie będzie działać!)

Utwórz i dodaj następujące linie do~/.sbt / plugins / build.SBT:

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

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

Użyj zadania gen-idea SBT do tworzenia plików projektu IDEA.

Domyślnie klasyfikatory (tj. źródła i Javadoc) zależności sbt i biblioteki są ładowane, jeśli zostaną znalezione i referencje dodane do plików projektu IDEA. Jeśli nie chcesz pobierać/odwoływać się do nich, użyj polecenia gen-idea no-classifiers no-sbt-classifiers.


SBT 0.7

Aby go użyć, po prostu uruchom to z powłoki sbt, będzie używać wtyczki jako zewnętrznego programu:

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

Możesz również dodać cechę do definicji projektu, jak chcesz:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}
 169
Author: Steve Gury,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-03 03:49:06

Na razie robię to ręcznie. Jest to dość proste.

  1. Utwórz projekt za pomocą SBT
  2. Utwórz nowy projekt idei z tą samą ścieżką główną
  3. Tworzenie modułu o tej samej ścieżce głównej
  4. Ustaw src/main / scala jako ścieżkę src w module
  5. Ustaw src / test / scala jako ścieżkę testową w module
  6. Dodaj scala-library.jar jako biblioteka
  7. Dodaj lib (jeśli istnieje) jako katalog Jar w bibliotece modułu
  8. Dodaj lib_managed/compile (jeśli jest present) jako katalog Jar w bibliotece modułów
  9. Dodaj lib_managed / test (jeśli jest obecny) jako katalog Jar w bibliotece modułów
To wszystko z pamięci. Byłoby lepiej, gdyby były zautomatyzowane, ale to nic wielkiego, jak to jest teraz.

Jedna uwaga: powyższe podejście nie działa dobrze z new-school sbt, tzn. z wersjami 0.10 i nowszymi, ponieważ nie kopiuje zależności do lib_managed domyślnie. Możesz dodać

retrieveManaged := true

Do twojej budowy.sbt aby to zrobić, skopiuj zależności do lib_managed.

 11
Author: Synesso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-23 00:01:40

Tempus fugit i IntelliJ IDEA stały się w dzisiejszych czasach o wiele lepsze. W końcu jest 2015, prawda?

Powiedziawszy to, najnowsza wersja IntelliJ IDEA 14.0.2 obsługuje projekty SBT po wyjęciu z pudełka zWtyczką Scala . Po prostu zainstaluj wtyczkę i powinieneś być w stanie otworzyć projekty Scala/SBT bez większych problemów.

Wtyczka Scala pod wtyczkami w preferencjach

Używam wersji Early Access wtyczki, która jest 1.2.67.6.EAP od czasu pisanie.

Za pomocą wtyczki po prostu wskaż projekt sbt i IDEA zaoferuje Ci kreatora do otwarcia tego rodzaju projektu.

Import projektu sbt

O SBT-idea w sbt 0.12.4

Dla sbt 0.12.4 Systemowy plik konfiguracyjny wtyczki - ~/.sbt/plugins/build.sbt lub PROJECT_DIR/project/plugins.sbt - powinien mieć następujące linie:

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

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

Uruchom sbt gen-idea, aby wygenerować pliki projektu IDEA.

[[4]} przeczytaj strona wtyczki SBT-idea aby uzyskać więcej aktualnych informacji. Możesz również znaleźć moje na blogu importowanie projektu opartego na SBT do IntelliJ IDEA 13 (z SBT-idea, Scala 2.11 i SBT 0.12) przydatne.
 6
Author: Jacek Laskowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-22 20:02:29

Dla sbt 0.7

Zobacz odpowiedź w innym miejscu na tej stronie .

Dla sbt 0.10

Klonuj i buduj ideę SBT Ismaela:

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

Utwórz katalog SBT plugin lib jeśli jeszcze go nie masz

mkdir -p  ~/.sbt/plugins/lib

Skopiuj słoik wbudowany w kroku pierwszym tutaj

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

Uruchom ponownie lub przeładuj sbt, następnie możesz uruchomić gen-idea (lub gen-idea with-classifiers Jeśli chcesz również źródła i javadoc w intelliJ)

Źródło: Grupa .

W IntelliJ IDEA 13.x

Możesz otworzyć projekt oparty na SBT w IDEA w dzisiejszych czasach. Stworzy on niezbędny projekt i moduły oraz utrzyma zależności na bieżąco za każdym razem, gdy wprowadzasz zmiany w skryptach budowania.

 5
Author: opyate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:23

Przeszłam przez cały ten ból. Spędzam dni próbując stworzyć akceptowalne środowisko i doszedłem do wniosku, że ENSIME, SBT i JRebel będą przez jakiś czas moim środowiskiem programistycznym. Tak, wraca do Emacsa, ale ENSIME zamienia go w trochę lub pomysł z refaktoryzacją, obsługą debugowania, nawigacją itp. Nie jest tak dobry jak Eclipse (Java), ale jeśli pluginy Scali nie działają lepiej, to jest najlepszy, jaki mamy.

Do czasu rozwoju Scali środowiska do tabaki (Eclipse czy IntelliJ) Nie będę się kłopotał. Są zbyt ruchliwe.

Zobacz dyskusję na stronie windy.

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

W tym wątku jest link do HOWTO dla IntelliJ, ale mimo, że działa, Jest wiele problemów, które sprawiają, że jest to trochę mniej przydatne.

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

 2
Author: andyczerwonka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-22 21:46:25

Odpowiedzi są stare Na Rok 2014. In IntelliJ 13.x , Plugin Scala to ver 0.41.2 (SBT jest dołączony).

Moja wersja SBT to 0.13.5 (terminal : sbt sbtVersion )

Przejdź do głównego folderu projektu i wprowadź w terminalu

sbt idea

Zobaczysz dwa nowe ukryte foldery .idea i .idea_modules .

Następnie w IntelliJ, Plik > Otwórz > wybierz projekt. Powinien otworzyć projekt bez żadnego problemu.

 2
Author: Raymond Chenon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-30 22:34:34

Zanim zaczniesz tworzyć swój projekt SBT, upewnij się, że wtyczka Scala jest pobrana i włączona w IntelliJ IDEA.

Poniżej link wyjaśnia wszystko, co musisz wiedzieć.

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

 0
Author: Prasad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-20 10:21:56