wake-up-neo.com

Wie erstellt man ein SBT-Projekt mit IntelliJ Idea?

Ich habe gerade erst mit der Entwicklung von Scala/LiftWeb/Sbt angefangen, und ich möchte ein Sbt-Projekt in IntelliJ Idea importieren .. __ Ich habe es tatsächlich geschafft, mein Projekt auf zwei verschiedene Arten zu importieren:

1) mit Maven. Ich habe ein Maven-Projekt erstellt und darüber hinaus ein Sbt-Projekt erstellt, das ich dann in IntelliJ importierte. Ich könnte dann leicht starten, den Stegserver anhalten und andere Sachen machen ... __ Aber das will ich nicht. Ich möchte das gleiche Zeug machen, nur Maven-frei ... Das führt mich dazu 

2) mit Eclipse. Also habe ich ein neues Sbt-Projekt erstellt (mit einem kleinen Skript, das ich geschrieben habe und das Sbt-Projekt als WebProject konfiguriert). Ich habe dann das sbt-eclipsify-Plugin verwendet, um das Projekt für Eclipse zu "konvertieren", das ich dann in IntelliJ importierte (vorhandene Quelle -> Eclipse). Die Probleme begannen jedoch hier: Das IntelliJ-Sbt-Plugin funktioniert nicht. 

Kann mir jemand dabei helfen?

143
ksemeks

Es gibt drei grundlegende Möglichkeiten, ein Projekt zu erstellen: Moderne Versionen von IntelliJ können das sbt-Projekt direkt importieren. Andernfalls können Sie entweder das sbt-Plugin zum Erstellen eines IntelliJ-Projekts verwenden oder das IntelliJ Scala-Plugin zum Erstellen eines sbt-Projekts. Grundlegende Funktionen sind bei Verwendung beider Lösungen einsatzbereit. Einige komplexe Builds können Probleme haben. Versuchen Sie es mit anderen Tools, um zu sehen, ob es dort funktioniert.

IntelliJ

IntelliJ IDEA ist heutzutage so viel besser geworden. Die aktuelle Version (14.0.2) unterstützt sbt-Projekte mit dem Scala-Plugin. Installieren Sie einfach das Plugin und Sie sollten in der Lage sein, Scala/sbt-Projekte problemlos zu öffnen.

Scala plugin under Plugins in Preferences

Zeigen Sie mit dem Plugin einfach auf ein sbt-Projekt, und IDEA bietet Ihnen einen Assistenten zum Öffnen dieser Art von Projekt.

Import sbt project

IntelliJ Scala Plugin

IntelliJ-Plugin kann hier gefunden werden http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA oder kann direkt von der IDE aus installiert werden Einstellungen -> Plugins-Dialog. Danach kann man einfach nur File -> New Project -> Scala -> SBT machen. IntelliJ generiert grundlegende build.sbt-Dateien, lädt die erforderlichen Abhängigkeiten herunter und öffnet das Projekt. 

SBT-Plugin

Sbt-Plugin, das ein Ideenprojekt basierend auf den Sbt-Dateien generiert, finden Sie hier: https://github.com/mpeltonen/sbt-idea

SBT 12.0+ & 13.0+

Fügen Sie einfach addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") zu Ihrem build.sbt hinzu; Es werden keine zusätzlichen Resolver benötigt.

Ältere Versionen:

SBT 0,11+

Erstellen Sie die folgenden Zeilen und fügen Sie sie zu ~/.sbt/plugins/build.sbt OR PROJECT_DIR/project/plugins.sbt hinzu.

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

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

Verwenden Sie gen-idea in sbt, um IDEA - Projektdateien zu erstellen.

Standardmäßig werden Klassifizierer (d. H. Quellen und Javadocs) von sbt und Bibliotheksabhängigkeiten geladen, wenn sie gefunden werden, und Verweise zu IDEA - Projektdateien hinzugefügt. Wenn Sie sie nicht herunterladen/referenzieren möchten, verwenden Sie den Befehl gen-idea no-classifiers no-sbt-classifiers.


SBT 0.10.1 (Laut Plugin-Autor 0.10.0 wird nicht funktionieren!)

Erstellen Sie die folgenden Zeilen und fügen Sie sie in ~/.sbt/plugins/build.sbt ein:

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

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

Verwenden Sie die Task gen-idea sbt, um IDEA -Projektdateien zu erstellen.

Standardmäßig werden Klassifizierer (d. H. Quellen und Javadocs) von sbt und Bibliotheksabhängigkeiten geladen, wenn sie gefunden werden, und Verweise zu IDEA - Projektdateien hinzugefügt. Wenn Sie sie nicht herunterladen/referenzieren möchten, verwenden Sie den Befehl gen-idea no-classifiers no-sbt-classifiers.


SBT 0,7

Um es zu verwenden, führen Sie es einfach von Ihrer sbt-Shell aus aus, es wird das Plugin als externes Programm verwenden:

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

Sie können in Ihrer Projektdefinition auch Eigenschaften hinzufügen, wie Sie möchten:

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

Im Moment mache ich das von Hand. Das ist ganz einfach.

  1. Erstellen Sie das Projekt mit SBT
  2. Erstellen Sie ein neues IDEA -Projekt mit demselben Stammpfad
  3. Erstellen Sie ein Modul mit demselben Stammpfad
  4. Legen Sie src/main/scala als src-Pfad im Modul fest
  5. Legen Sie src/test/scala als Testpfad für das Modul fest
  6. Fügen Sie scala-library.jar als Bibliothek hinzu
  7. Fügen Sie lib (falls vorhanden) als JAR-Verzeichnis in einer Modulbibliothek hinzu
  8. Fügen Sie lib_managed/compile (falls vorhanden) als JAR-Verzeichnis in einer Modulbibliothek hinzu
  9. Fügen Sie lib_managed/test (falls vorhanden) als JAR-Verzeichnis in einer Modulbibliothek hinzu

Das war es aus der Erinnerung. Es wäre besser, wenn es automatisiert wäre, aber es ist keine große Sache, wie es jetzt ist.

Ein Hinweis zur Vorsicht: Der obige Ansatz funktioniert nicht gut mit new-school sbt, d. H. Versionen 0.10 und neuer, da Abhängigkeiten standardmäßig nicht in lib_managed kopiert werden. Du kannst hinzufügen 

retrieveManaged := true

in Ihre build.sbt, um die Abhängigkeiten in lib_managed zu kopieren.

11
Synesso

Tempus fugit und IntelliJ IDEA ist heutzutage so viel besser geworden. Es ist immerhin 2015, nicht wahr?

Allerdings unterstützt die neueste Version von IntelliJ IDEA 14.0.2 sbt-Projekte aus der Box mit dem Scala-Plugin . Installieren Sie einfach das Plugin und Sie sollten Scala/sbt-Projekte ohne große Probleme öffnen können.

Scala plugin under Plugins in Preferences

Ich verwende die Early Access-Version des Plugins, die zum Zeitpunkt des Schreibens 1.2.67.6.EAP ist.

Wenn das Plugin nur auf ein sbt-Projekt zeigt, wird IDEA Ihnen einen Assistenten zum Öffnen dieser Art von Projekt anbieten.

Import sbt project

Über die sbt-Idee in sbt 0.12.4

Für sbt 0.12.4 sollte die systemweite Plugin-Konfigurationsdatei - ~/.sbt/plugins/build.sbt oder PROJECT_DIR/project/plugins.sbt - die folgenden Zeilen enthalten:

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

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

Führen Sie sbt gen-idea aus, um IDEA -Projektdateien zu generieren.

Lesen Sie die sbt-idea Plugin-Website für aktuellere Informationen. Möglicherweise finden Sie auch meinen Blogeintrag Importieren eines sbt-basierten Projekts in IntelliJ IDEA 13 (mit sbt-idea, Scala 2.11 und sbt 0.12) nützlich.

7
Jacek Laskowski

Für sbt 0,7

Siehe die Antwort an anderer Stelle auf dieser Seite .

Für sbt 0.10

Klone und baue Ismaels sbt-Idee:

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

Erstellen Sie ein sbt-Plugin-lib-Verzeichnis, falls Sie noch kein Verzeichnis haben

mkdir -p  ~/.sbt/plugins/lib

Kopieren Sie das in Schritt 1 eingebaute Glas hier hinein

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

Starten Sie sbt neu oder laden Sie es neu. Dann können Sie gen-idea (oder gen-idea with-classifiers ausführen, wenn Sie Quellen und Javadoc auch in intelliJ verwenden möchten).

Quelle: Vorschlag der Tacker zur Nachrichtengruppe .

In IntelliJ IDEA 13.x selbst

Sie können heutzutage ein SBT-basiertes Projekt in IDEA öffnen. Es erstellt das erforderliche Projekt und die erforderlichen Module und hält Ihre Abhängigkeiten auf dem neuesten Stand, wenn Sie Änderungen an den Build-Skripts vornehmen.

5
opyate

Ich habe gerade diesen ganzen Schmerz durchgemacht. Ich verbringe Tage damit, eine akzeptable Umgebung aufzubauen und bin zu dem Schluss gekommen, dass ENSIME, SBT und JRebel für einige Zeit meine Entwicklungsumgebung sein werden. Ja, es geht zurück zu Emacs, aber ENSIME macht es mit Refactoring, Debugging-Unterstützung, Navigation usw. zu etwas oder einer Idee. Es ist bei weitem nicht so gut wie Eclipse (Java), aber wenn die Scala-Plugins nicht besser funktionieren, ist es das am besten wir haben.

Bis die Scala-Entwicklungsumgebungen den Einstieg erleichtern (Eclipse oder IntelliJ), werde ich mich nicht darum kümmern. Sie sind einfach zu fehlerhaft.

Siehe die Diskussion auf der Liftseite.

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

In diesem Thread gibt es einen Link zu einem HOWTO für IntelliJ, aber obwohl es irgendwie funktioniert, gibt es viele Probleme, die es etwas weniger nützlich machen.

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

2
andyczerwonka

Die Antworten sind alt für 2014 . In IntelliJ 13.x ist das Plugin Scala ver 0.41.2 (SBT enthalten).

Meine SBT-Version ist 0.13.5 (Terminal: sbt sbtVersion)

Gehen Sie zum Stammordner des Projekts und geben Sie das Terminal ein

sbt idea

Sie sehen zwei neue versteckte Ordner .idea und .idea_modules .

Dann wählen Sie in IntelliJ Datei> Öffnen> das Projekt aus. .__ Es sollte das Projekt ohne Probleme öffnen.

2
Raymond Chenon

Vergewissern Sie sich vor dem Erstellen Ihres SBT-Projekts, dass das Scala-Plugin in IntelliJ IDEA heruntergeladen und aktiviert ist.

der folgende Link erklärt alles, was Sie wissen müssen.

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

0
Prasad