Szukaj…


Wiele projektów w tej samej kompilacji (podprojekty)

Czasami kompilacja łączy wiele katalogów źródłowych, z których każdy jest własnym „projektem”. Na przykład możesz mieć taką strukturę kompilacji:

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

W powyższym projekcie kod w projectName/src jest uważany za projekt root . Istnieją dwa inne moduły lub „podprojekty”, core i webapp .

Konfigurowanie podprojektu jest podobne do konfigurowania projektu głównego, z tym wyjątkiem, że podkatalog jest określony w projekcie. Ten przykład pokazuje, że projekt korzeń agreguje się core i webapp projektu.

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)

Wartości przekazane do file() są katalogami względem katalogu głównego projektu.

webapp projektu zależą od core projektu, który jest wskazany przez dependsOn klauzulą, które przyjmuje core wartości podanej na linii powyżej. dependsOn i lazy ocena zapewniają dostępność zależności przed wykorzystaniem ich przez projekty. W tym przypadku, webapp zależy od core , więc core zostaną skompilowane przed próbami budowania skompilować webapp .

aggregate udostępnia zadania zdefiniowane w jednym projekcie dla projektu, który go agreguje. Na przykład, wykonanie compile w root projektu będzie również wykonać compile w core i webapp .

Skonfiguruj makra w projekcie

W pliku build.sbt (lub tam, gdzie projekt jest zdefiniowany, jeśli znajduje się w innej lokalizacji), dodaj następujące ustawienie:

scalacOptions += "-language:experimental.macros"

Na przykład projekt można zdefiniować w następujący sposób:

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

W powyższym przykładzie dołączono wtyczkę paradise , aby zapewnić pełne wsparcie dla Scala 2.10.x

Ustawienia wyświetlania

W konsoli SBT, aby wyświetlić listę wszystkich możliwych do zdefiniowania ustawień dla projektu:

settings

Lub, aby uzyskać ustawienia podprojektu (na przykład o nazwie webapp ):

project webapp
settings

Pierwszy wiersz powyżej przechodzi do określonego podprojektu.

Aby wyświetlić wartość określonego ustawienia (na przykład organization ):

show organization

Spowoduje to wyświetlenie wartości tego ustawienia.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow