/ / Comment importer un projet multi-module dans IntelliJ IDEA? - intellij-idea, playframework-2.0, sbt

Comment importer un projet multi-module dans IntelliJ IDEA? - intellij-idea, playframework-2.0, sbt

Je suis habitué aux projets Spring et Maven où je mets en place un projet multi-modules à Maven avec des projets comme:

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

Je commence à utiliser Play Framework 2 (Scala) et sbt.

Existe-t-il un concept similaire avec Play et sbt selon lequel je pourrais regrouper tous ces projets dans une seule solution IntelliJ IDEA et sbt?

Réponses:

8 pour la réponse № 1

IntelliJ IDEA 13 (la dernière version est 13.1.3) livré avec le support SBT intégré, et l'édition Ultimate ajoute le support Play.

Un projet sbt multi-module peut être importé dans IDEA et est entièrement pris en charge, mais il est basé sur Play ou non (ils sont des projets sbt après tout).

Vous devriez l'essayer vous-même avec le fichier de construction très simpliste suivant build.sbt (ou générez simplement un projet Play avec play new ou mieux maintenant activator new [your-project-name] play-scala):

lazy val a, b, c = project

et les suivants project/build.properties:

sbt.version=0.13.5

Rien que ces deux fichiers ci-dessus ne sont nécessaires pour démarrer avec sbt / activator.

Dans IDEA, ouvrez le projet à l'aide de File > Open... et sélectionnez build.sbt.

entrer la description de l'image ici

Cliquez sur OK pour voir une autre fenêtre dans laquelle vous spécifiez des options de configuration supplémentaires pour le projet. Ensuite, les modules apparaissent.

entrer la description de l'image ici


1 pour la réponse № 2

Vous ne seriez probablement pas en mesure de les regrouper en un seul projet, mais vous pourriez avoir plusieurs projets à coup sûr:

dans votre projet / 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)
}

Dans ce cas, vous aurez une application standard appelée"app-web", un module appModels sous modules / modèles sans le répertoire du projet et les confs réguliers comme application.conf, et une application agrégée appelée "app".

Lorsque vous démarrez la console de jeu, vous pouvez basculerà certains projets en tapant "projet (nom)". Par exemple, vous pouvez taper «projet app-web» puis «idée» pour générer la solution de projet app-web pour l'idée. Vous pouvez également basculer vers le projet "app" où toutes les commandes entrées sous celui-ci seront appliquées à tous les sous-projets.

Pour en savoir plus, consultez la documentation ici: http://www.playframework.com/documentation/2.2.x/SBTSubProjects