有一种特定于获取分析的直接方法,但Analysis
前提是您想要的所有值都在类路径中。在 sbt 中,类路径的类型为Seq[Attributed[File]]
. Attributed部分将元数据附加到每个条目。一个元数据是Analysis
该条目的(显然只有当它是从源代码编译时)。
所以,这将得到Seq[Analysis]
一个类路径:
... (fullClasspath in Compile) map { (cp: Seq[Attributed[File]]) =>
cp.map(entry => Defaults.extractAnalysis(entry)._2)
}
请注意,如果没有附加,则实现为Defaults.extractAnalysis
空。Analysis
在 0.13 中,终于有一个 API 可以做到这一点:
http://www.scala-sbt.org/snapshot/docs/Detailed-Topics/Tasks.html#multiple-scopes
在这种情况下,它看起来像:
someTask := {
val allA: Seq[inc.Analysis] = compile.result.all(
ScopeFilter( inAggregates(ThisProject), inConfigurations(Compile) )
).value
...
}
(该部分与直接语法
result
中的相同: http ://www.scala-sbt.org/snapshot/docs/Detailed-Topics/Tasks.html#result
)mapR