затем вызовите вашу задачу следующим образом:

аюсь реализовать задачу sbt, которая собирает все исходные каталоги проектов, указанных с помощьюdependsOn метод проекта. Я в конечном итоге с этим фрагментом кода:

def sourcesOfDependencies(p: Project): Def.Initialize[Task[Seq[File]]] = 
  Def.taskDyn {
    p.dependencies
     .map(dep => (sourceDirectory in dep.project).toTask.map(Seq(_)))
     .reduce((t1, t2) =>
        t1.flatMap(s1 => t2.map(s2 => s1 ++ s2).taskValue)
     )
  }

sources := Def.taskDyn { sourcesOfDependencies(myProject) }.value

Как по мне это должно работать но не компилируется

[error] /home/visa/src/Playtech-BIT/project/SparkDeployment.scala:57:32: The evaluation of `map` inside an anonymous function is prohibited.
[error]
[error] Problem: Task invocations inside anonymous functions are evaluated independently of whether the anonymous function is invoked or not.
[error]
[error] Solution:
[error]   1. Make `map` evaluation explicit outside of the function body if you don't care about its evaluation.
[error]   2. Use a dynamic task to evaluate `map` and pass that value as a parameter to an anonymous function.
[error]
[error]         t1.flatMap(s1 => t2.map(s2 => s1 ++ s2).taskValue)
[error]                                ^
[error] /home/visa/src/Playtech-BIT/project/SparkDeployment.scala:57:26: Illegal dynamic reference: t2
[error]         t1.flatMap(s1 => t2.map(s2 => s1 ++ s2).taskValue)
[error]                          ^
[error] /home/visa/src/Playtech-BIT/project/SparkDeployment.scala:57:39: Illegal dynamic reference: s1
[error]         t1.flatMap(s1 => t2.map(s2 => s1 ++ s2).taskValue)

Кто-нибудь может посоветовать, как применить предложенное решение? Или, может быть, есть более простой способ достичь моей цели?

Ответы на вопрос(1)

Ваш ответ на вопрос