sbt
Projekte
Suche…
Mehrere Projekte im selben Build (Teilprojekte)
Manchmal kombiniert ein Build mehrere Quellverzeichnisse, von denen jedes ein eigenes "Projekt" ist. Beispielsweise haben Sie eine Build-Struktur wie folgt:
Projektname / build.sbt Projekt / src / main / ... test / ... core / src / main / ... test / ... webapp / src / main / ... test / ...
In dem obigen Projekt, wird der Code in projectName/src
wird das als root
- Projekt. Es gibt zwei weitere Module oder "Teilprojekte", core
und webapp
.
Das Konfigurieren eines Unterprojekts ähnelt dem Konfigurieren des Stammprojekts, mit der Ausnahme, dass das Unterverzeichnis im Projekt angegeben ist. Dieses Beispiel zeigt ein webapp
, das ein core
und ein webapp
Projekt zusammenfasst.
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)
Die an file()
Werte sind die Verzeichnisse relativ zum Projektstamm.
Das webapp
Projekt hängt vom core
dependsOn
wird durch die dependsOn
, die den in der obigen Zeile angegebenen core
annimmt. dependsOn
und " lazy
Evaluation" stellen sicher, dass Abhängigkeiten verfügbar sind, bevor Projekte sie nutzen. In diesem Fall hängt webapp
vom core
. Der core
wird also kompiliert, bevor der Build versucht, webapp
zu kompilieren.
aggregate
macht die in einem Projekt definierten Aufgaben für das Projekt verfügbar, das es aggregiert. Zum Beispiel das Ausführen compile
im root
- Projekt wird auch ausführen compile
in core
und webapp
.
Konfigurieren Sie Makros in einem Projekt
build.sbt
Datei build.sbt
(oder wo das Projekt definiert ist, wenn es sich an einem anderen Ort befindet) die folgende Einstellung hinzu:
scalacOptions += "-language:experimental.macros"
Ein Projekt könnte beispielsweise folgendermaßen definiert werden:
lazy val main = project.in(file(".")) // root project
.settings(scalacOptions += "-language:experimental.macros",
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))
Im obigen Beispiel ist das paradise
Plugin enthalten, um Scala 2.10.x
vollständig zu unterstützen.
Bildschirmeinstellungen
Um in der SBT-Konsole alle definierbaren Einstellungen für ein Projekt aufzulisten:
settings
Oder um die Einstellungen eines Unterprojekts (beispielsweise mit dem Namen webapp
) webapp
:
project webapp
settings
Die erste Zeile darüber navigiert in das jeweilige Unterprojekt.
So zeigen Sie den Wert einer bestimmten Einstellung (zum Beispiel der organization
) an:
show organization
Dadurch wird der Wert dieser Einstellung angezeigt.