Tengo un multiproyecto SBT donde algunos proyectos tienen dependencias entre sí. Me gusta esto:
lazy val coreProject: Project = Project(
id = "core-project",
base = file("./core-project"),
// other stuff
))
lazy val extensions: Project = Project(
id = "extensions",
base = file("./extensions"),
dependencies = Seq(coreProject)
)
Ahora tengo algo de código de prueba en el proyecto 'principal' en la carpeta de prueba. También hay cosas como simulacros y utilidades de prueba. Ahora me gustaría usar esas utilidades de prueba en las pruebas de las extensiones. Para el código de producción, esto funciona, ya que he declarado una dependencia. Sin embargo, parece que la dependencia no es válida para las pruebas. Cuando ejecuto las pruebas, obtengo un error de compilación por clases faltantes. Esas clases son del código de prueba en el proyecto principal.
¿Cómo puedo decirle a sbt que la dependencia también debe incluir el código de prueba para el alcance de la prueba? ¿Para poder reutilizar mis simulaciones en el código de prueba del proyecto 'exension'?
lazy val foo = project.settings(...).dependencies(Seq(bar % "compile->compile;test->test"))
no funciona. @RyanGross, ¿lo harías?También puede hacer esto con un
.dependsOn(coreProject % "compile->compile;test->test")
después de la declaración inicial del proyecto.lazy val coreProject = Project("core-project") lazy val extensions = Project("extensions").dependsOn(coreProject % "compile->compile;test->test")
fuente