Comment obtenir la valeur de paramètre d'un autre projet de multi-projet de construction

0

La question

Je ne suis pas sûr que j'ai droit le concept de sbt flux de travail. J'ai le multi-projet de la structure d'une profondeur arbitraire dans mon construire.sbt Maintenant, je veux définir une tâche qui peut me montrer les dépendances de la bibliothèque de projet actuel sous-projets dépend. Ou, en commun: est-il possible d'obtenir la valeur de paramètre d'un autre projet?

Je suis en train de faire quelque chose comme ceci:

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)

mais l'obtention de 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

La meilleure réponse

0

Je pense que vous essayez de faire quelque chose en dehors de sbt philosophie.

Vous devez définir une tâche pour chaque projet qui fait quelque chose. Puis ajouter aggregate à la racine de votre projet avec la liste de tous les sous-projets. Ainsi, lorsque vous appelez sbt taskNameil fera appel taskName pour tous les sous-projets aggregate.

Aussi, ce que vous voulez faire peut être fait avec la suite

sbt "show libraryDependencies"

étant donné que vous avez défini aggregate pour la racine de votre projet

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

2021-11-24 09:35:32

Dans d'autres langues

Cette page est dans d'autres langues

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