www org scala sbt

scala - org - ¿Cómo hacer referencia al proyecto sbt externo de otro proyecto sbt?



scala sbt install windows (3)

Tengo la siguiente configuración de una aplicación Scala y una biblioteca central común: root

-> /ApplicationA -> /project -> /build.sbt -> /CoreLibrary -> /project -> /build.sbt

Quiero agregar una referencia de ApplicationA a CoreLibrary a la referencia del proyecto Eclipse, para que cada vez que CoreLibrary cambie ApplicationA se construya también. He probado los siguientes contenidos de build.Scala for ApplicationA:

val core = Project( id = "platform-core", base = file("../CoreLibrary")) val main = Project(id = "application, base = file(".")).dependsOn(core)

Sin embargo, al compilar ApplicationA SBT se queja de que una dependencia solo puede ser un subdirectorio !!

java.lang.AssertionError: assertion failed: Directory C:/git/CoreLibrary is not contained in build root C:/git/ApplicationA

Esto parece completamente sencillo, ¿cuál es la forma correcta de tener esta dependencia del proyecto?



Desde sbt 0.13 , puede crear definiciones de proyectos múltiples directamente en .sbt sin necesidad de un archivo Build.scala .

Entonces, sería suficiente agregar lo siguiente a ApplicationA / project / build.sbt .

lazy val core = RootProject(file("../CoreLibrary")) val main = Project(id = "application", base = file(".")).dependsOn(core)


Puedes hacer una dependencia de origen en tu proyecto así:

lazy val core = RootProject(file("../CoreLibrary")) val main = Project(id = "application", base = file(".")).dependsOn(core)

Tengo un ejemplo de trabajo con una compilación multimódulo: https://github.com/ahoy-jon/play2MultiModule/blob/master/playapp/project/Build.scala

Pero creo que la forma correcta (depende de tu contexto) de hacerlo es crear un

-> /project/ -> Build.scala -> /ApplicationA -> /project -> /build.sbt -> /CoreLibrary -> /project -> /build.sbt

Haciendo referencia a los dos proyectos y las dependencias entre ellos.