sbt
projekt
Sök…
Flera projekt i samma byggnad (delprojekt)
Ibland kombinerar en build flera källkataloger, var och en av dem är sitt eget 'projekt'. Till exempel kan du ha en byggstruktur som denna:
projektnamn / build.sbt projekt / src / main / ... test / ... core / src / main / ... test / ... webapp / src / main / ... test / ...
I ovanstående projektet koden i projectName/src
anses vara root
projektet. Det finns två andra moduler, eller "delprojekt", core
och webapp
.
Att konfigurera ett delprojekt liknar konfigurera rotprojektet, förutom att underkatalogen anges i projektet. Detta exempel visar ett webapp
ett core
och webapp
projekt.
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)
Värdena som skickas till file()
är katalogerna i förhållande till projektroten.
Den webapp
projekt beror på core
projektet, som indikeras av dependsOn
klausulen, som tar core
värde som anges på raden ovanför. dependsOn
och lazy
utvärdering säkerställer att beroenden är tillgängliga innan projekt använder dem. I det här fallet beror webapp
på core
, så core
kommer att sammanställas innan build försöker kompilera webapp
.
aggregate
gör uppgifter definierade i ett projekt tillgängliga för projektet som aggregerar det. Till exempel att utföra compile
i root
Projektet kommer också att utföra compile
i core
och webapp
.
Konfigurera makron i ett projekt
build.sbt
filen build.sbt
(eller där projektet definieras om det finns på en annan plats):
scalacOptions += "-language:experimental.macros"
Till exempel kan ett projekt definieras så här:
lazy val main = project.in(file(".")) // root project
.settings(scalacOptions += "-language:experimental.macros",
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))
I exemplet ovan ingår paradise
plugin för att ge komplett stöd för Scala 2.10.x
Bildskärmsinställningar
För att lista alla definierbara inställningar för ett projekt i SBT-konsolen:
settings
Eller för att få ett delprojekt (till exempel namngivna webapp
) -inställningar:
project webapp
settings
Den första raden ovan navigerar till det specifika delprojektet.
För att visa värdet på en specifik inställning (till exempel organization
):
show organization
Detta visar värdet på den inställningen.