Çoklu proje oluşturmada başka bir projenin ayar değeri nasıl alınır

0

Soru

Sbt iş akışı kavramını doğru anladığımdan emin değilim. Yapımda keyfi bir derinlikte çok projeli bir yapıya sahibim.sbt Şimdi, mevcut alt projelerin bağlı olduğu projenin kütüphane bağımlılıklarını gösterebilecek görevi tanımlamak istiyorum. Veya ortak olarak: başka bir projenin ayar değerini elde etmenin bir yolu var mı?

Ne için böyle bir şey deniyorum:

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)

ama almak 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

En iyi cevabı

0

Bence sbt felsefesinin dışında bir şeyler yapmaya çalışıyorsun.

Bir şey yapan her proje için bir görev tanımlamanız gerekir. Sonra ekle aggregate tüm alt projelerin listesini içeren kök projenize. Böylece, aradığınızda sbt taskName olur diyelim taskName tüm alt projeler için aggregate.

Ayrıca, yapmak istediğiniz şey sadece aşağıdakilerle yapılabilir

sbt "show libraryDependencies"

tanımladığınız göz önüne alındığında aggregate kök projeniz için

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

2021-11-24 09:35:32

Diğer dillerde

Bu sayfa diğer dillerde

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