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 № 1IntelliJ 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
.
Klicken OK
um ein weiteres Fenster anzuzeigen, in dem Sie zusätzliche Konfigurationsoptionen für das Projekt angeben. Dann erscheinen die Module.
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