¿Cómo obtener directorios fuente de todas las dependencias de un proyecto sbt?

Estoy tratando de implementar una tarea sbt que recopila todos los directorios de origen de los proyectos especificados usandodependsOn método de un proyecto. Termino con este código:

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

En cuanto a mí, debería funcionar pero no se compila:

[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)

¿Alguien podría aconsejar sobre cómo aplicar la solución propuesta? ¿O tal vez hay una manera más simple de lograr mi objetivo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta