<<=is a TaskKey method that returns a value. It does not update the mutable state anywhere, so in the code example, the result of the first call is discarded. To fix this, declare packageBin as input, but ignore the resulting value. Note that packageBin is compilation dependent, so there is no need for compilation.
dist <<= (update, crossTarget, packageBin in Compile) map { (updateReport, out, _) =>
, UpdateReport , . , . , , .
ModuleID, , lib_managed, retrieveManaged := true. .
updateReport.matching(configurationFilter(Runtime.name)).foreach...
sbt.UpdateReport sbt.RichUpdateReport API- .
, dependencyClasspath. :
dist <<= (crossTarget, packageBin in Compile, dependencyClasspath in Runtime) map { (out, _, cp) =>
Seq[File] cp.files.