/ / Wie importiere ich ein Multi-Modul-Projekt in IntelliJ IDEA? - intellij-idea, playframework-2.0, sbt

Wie importiert man ein Multi-Modul-Projekt in IntelliJ IDEA? - intellij-idee, playframework-2.0, sbt

Ich bin an Spring- und Maven-Projekte gewöhnt, in denen ich ein Multimodul-Projekt in Maven mit folgenden Projekten eingerichtet habe:

app-web
app-models
app-services
app-common

Ich fange jetzt an zu benutzen Spielen Sie Framework 2 (Scala) und sbt.

Gibt es ein ähnliches Konzept bei Play und sbt, bei dem ich all diese Projekte in einer einzigen IntelliJ IDEA-Lösung und sbt zusammenfassen könnte?

Antworten:

8 für die Antwort № 1

IntelliJ IDEA 13 (Die neueste Version ist 13.1.3) kommt mit die eingebaute SBT-Unterstützung, und Die Ultimate Edition bietet zusätzliche Play-Unterstützung.

Ein Multimodul-sbt-Projekt kann in IDEA importiert werden und wird sofort vollständig unterstützt, unabhängig davon, ob es spielbasiert ist oder nicht (es handelt sich immerhin um sbt-Projekte).

Sie sollten es selbst mit der folgenden sehr simplen Build-Datei ausprobieren build.sbt (oder generiere einfach ein Play Projekt mit play new oder besser jetzt activator new [your-project-name] play-scala):

lazy val a, b, c = project

und die folgende project/build.properties:

sbt.version=0.13.5

Für den Einstieg in sbt / activator werden nur die beiden oben genannten Dateien benötigt.

Öffnen Sie in IDEA das Projekt mit File > Open... und wählen Sie build.sbt.

Bildbeschreibung hier eingeben

Klicken OK um ein weiteres Fenster anzuzeigen, in dem Sie zusätzliche Konfigurationsoptionen für das Projekt angeben. Dann erscheinen die Module.

Bildbeschreibung hier eingeben


1 für die Antwort № 2

Sie wären wahrscheinlich nicht in der Lage, sie in einer Idee zu einem einzigen Projekt zu gruppieren, aber Sie könnten mit Sicherheit mehrere Projekte haben:

in Ihrem Projekt / Build.scala:

{

val baseDependencies = Seq(
"org1" % "dep" % "latest.integration",
"org2" % "dep2" % "version"
)

val modelDependencies = baseDependencies ++ Seq("org3" % "dep3" % "version")

val appWeb = play.Project("app-web", "1.0", baseDependencies)

val appModels = play.Project("app-models", "1.0", modelDependencies, path = file("modules/models"))

val app = play.Project("app", "1.0", Nil).aggregate(appWeb, appModels)
}

In diesem Fall haben Sie eine reguläre App namens"app-web", ein Modul appModels unter modules / models ohne das Projektverzeichnis und reguläre confs wie application.conf und eine aggregierte App namens "app".

Wenn Sie die Spielekonsole starten, können Sie wechselnzu bestimmten Projekten, indem Sie "Projekt (Name)" eingeben. Sie können beispielsweise "project app-web" und dann "idea" eingeben, um die Projektlösung für idea im App-Web zu generieren. Sie können auch zu Projekt "app" wechseln, wo alle unter "app" eingegebenen Befehle auf alle Unterprojekte angewendet werden.

Weitere Informationen finden Sie in der Dokumentation hier: http://www.playframework.com/documentation/2.2.x/SBTSubProjects