Recherche…


Plusieurs projets dans la même construction (sous-projets)

Parfois, une construction combine plusieurs répertoires sources, chacun étant leur propre «projet». Par exemple, vous pourriez avoir une structure de construction comme celle-ci:

projectName / build.sbt projet / src / main / ... test / ... core / src / main / ... test / ... webapp / src / main / ... test / ...

Dans le projet ci-dessus, le code dans projectName/src est considéré comme le projet root . Il existe deux autres modules, ou «sous-projets», core et webapp .

La configuration d'un sous-projet est similaire à la configuration du projet racine, sauf que le sous-répertoire est spécifié dans le projet. Cet exemple montre un projet racine qui agrège un projet core et webapp .

lazy val root = (project in file(".")).aggregate(core,webapp).dependsOn(core, webapp)

lazy val core = (project in file("core"))

lazy val webapp = (project in file("webapp")).dependsOn(core)

Les valeurs transmises à file() sont les répertoires relatifs à la racine du projet.

Le projet webapp dépend du projet core , qui est indiqué par la clause dependsOn , qui prend la valeur de core spécifiée sur la ligne ci-dessus. dependsOn et lazy s'assurent que les dépendances sont disponibles avant que les projets les utilisent. Dans ce cas, webapp dépend de core , donc core sera compilé avant que la compilation ne tente de compiler webapp .

aggregate rend les tâches définies dans un projet disponibles pour le projet qui les agrège. Par exemple, l'exécution de la compile dans le projet root exécutera également la compile dans le core et l'application webapp .

Configurer les macros dans un projet

Dans le fichier build.sbt (ou où le projet est défini s'il se trouve dans un autre emplacement), ajoutez le paramètre suivant:

scalacOptions += "-language:experimental.macros"

Par exemple, un projet peut être défini comme ceci:

lazy val main = project.in(file("."))  // root project
  .settings(scalacOptions += "-language:experimental.macros",
            addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))

Dans l'exemple ci-dessus, le plugin paradise est inclus afin de fournir un support complet de Scala 2.10.x

Paramètres d'affichage

Dans la console SBT, pour répertorier tous les paramètres définissables pour un projet:

settings

Ou, pour obtenir les paramètres d'un sous-projet (par exemple, une application webapp nommée):

project webapp
settings

La première ligne ci-dessus navigue dans le sous-projet spécifique.

Pour montrer la valeur d'un paramètre spécifique (par exemple, organization ):

show organization

Cela affichera la valeur de ce paramètre.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow