Como obter o valor de configuração de outro projeto em multi-projecto de construção

0

Pergunta

Eu não tenho certeza de que eu tenho o direito de o conceito do sbt fluxo de trabalho. Eu tenho multi-estrutura do projeto de uma profundidade arbitrária na minha construção.sbt Agora eu quero a tarefa de definir o que pode me mostrar dependências da biblioteca do projeto atual subprojetos depende. Ou, em comum: existe alguma maneira de obter o valor de configuração de outro projeto?

Eu estou tentando fazer algo parecido com isto:

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)

mas chegando 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

Melhor resposta

0

Eu acho que você está tentando fazer algo fora do sbt filosofia.

Você deve definir uma tarefa para cada projeto que faz alguma coisa. Em seguida, adicione aggregate para o seu projecto de raiz com a lista de todos os sub-projetos. Assim, quando você chamar sbt taskName, ele irá chamar taskName para todos os sub-projetos em aggregate.

Também, o que você quer fazer pode ser feito apenas com a seguinte

sbt "show libraryDependencies"

dado que você definiu aggregate para o seu projecto de raiz

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

2021-11-24 09:35:32

Em outros idiomas

Esta página está em outros idiomas

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