Cómo obtener el valor de ajuste de otro proyecto en multi-proyecto de construir

0

Pregunta

No estoy seguro de que tengo derecho el concepto de sbt flujo de trabajo. Tengo varios proyectos de la estructura de una profundidad arbitraria en mi generación.sbt Ahora quiero definir la tarea que me puede mostrar dependencias de la biblioteca de proyecto actual subproyectos depende. O, en común: ¿hay alguna forma de obtener el valor de ajuste de otro proyecto?

Estoy tratando de hacer algo como esto:

val hierarchyDeps = taskKey[Seq[ModuleID]]("")
val hierarchyDepsImpl = Def.task {
  loadedBuild.value.allProjectRefs.flatMap { case (projectRef, resolvedProject) =>
    (projectRef / libraryDependencies).value
  }
}

val cmn = project.in(file("cmn"))
val subA = project.in(file("sub_a")).dependsOn(cmn).settings(hierarchyDeps := hierarchyDepsImpl.value)
val subB = project.in(file("sub_b")).dependsOn(cmn).settings(hierarchyDeps := hierarchyDepsImpl.value)

pero conseguir java.lang.IllegalArgumentException:

java.lang.IllegalArgumentException: Could not find proxy for val projectRef: sbt.ProjectRef in List(value projectRef, value $anonfun, method $anonfun$hierarchyDepsImpl$1, value hierarchyDepsImpl, object $5879c5c8d08c0b0b007a, package <empty>, package <root>) (currentOwner= value hierarchyDepsImpl )
sbt scala
2021-11-24 06:33:05
1

Mejor respuesta

0

Creo que están tratando de hacer algo fuera de sbt filosofía.

Usted debe definir una tarea para cada proyecto que hace algo. A continuación, agregue aggregate a raíz del proyecto con la lista de todos los sub-proyectos. Por lo tanto, cuando usted llame sbt taskName, llamará taskName para todos los sub-proyectos en aggregate.

También, lo que quieres hacer puede ser hecho con la siguiente

sbt "show libraryDependencies"

dado que definió aggregate para su proyecto de raíz

val root = project.in(file(".")).aggregate(cmn, subA, subB)

2021-11-24 09:35:32

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................