Sono abituato ai progetti Spring e Maven dove ho creato un progetto multi-modulo in Maven con progetti come:
app-web
app-models
app-services
app-common
Sto iniziando a usare Gioca a Framework 2 (Scala) e sbt.
C'è un concetto simile con Play e sbt che potrei raggruppare tutti questi progetti in un'unica soluzione IDEA IntelliJ e sbt?
risposte:
8 per risposta № 1IntelliJ IDEA 13 (l'ultima versione è 13.1.3) Viene con il supporto SBT integrato, e l'edizione Ultimate aggiunge il supporto Play.
Un progetto sbt multi-modulo può essere importato in IDEA ed è completamente supportato fuori dalla scatola, ma è basato su Play o no (dopotutto sono progetti di sbt).
Dovresti provare tu stesso con il seguente file di costruzione molto semplicistico build.sbt (o semplicemente generare un progetto Play con play new
o meglio ora activator new [your-project-name] play-scala
):
lazy val a, b, c = project
e il seguente project/build.properties
:
sbt.version=0.13.5
Nient'altro che questi due file sopra sono necessari per iniziare con sbt / activator.
In IDEA, apri il progetto usando File > Open...
e selezionare build.sbt
.
Clic OK
per vedere un'altra finestra in cui si specificano opzioni di configurazione aggiuntive per il progetto. Quindi i moduli si presentano.
1 per risposta № 2
Probabilmente non saresti in grado di raggrupparli in un singolo progetto nell'idea ma potresti avere sicuramente più progetti:
nel tuo progetto / 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 questo caso, avrai una normale app chiamata"app-web", un modulo appModels sotto moduli / modelli senza la directory del progetto e confs normali come application.conf e un'app aggregata chiamata "app".
Quando avvii la console di gioco puoi passarea determinati progetti digitando "project (name)". Ad esempio è possibile digitare "project app-web" e quindi "idea" per generare la soluzione del progetto web-app per l'idea. È anche possibile passare alla "app" di progetto in cui tutti i comandi immessi sotto verranno applicati a tutti i sottoprogetti.
Per ulteriori informazioni, consultare la documentazione qui: http://www.playframework.com/documentation/2.2.x/SBTSubProjects