有使用 storeAs
的 SBT TaskKeys和triggeredBy
例程。
共有 3 个部分:
A storeAs B 由C触发
我怀疑它就像
商店findManifestPath
至manifestPackageName
当manifestPath
任务完成
但是为什么我们不能写 manifestPackageName <<= findManifestPath
?
一些样本
manifestPackageName <<= findManifestPath storeAs manifestPackageName triggeredBy manifestPath
或
multiJvmTestNames <<= multiJvmTests map { _.keys.toSeq } storeAs multiJvmTestNames triggeredBy compile
或
discoveredMainClasses <<= compile map discoverMainClasses storeAs discoveredMainClasses triggeredBy compile
或
definedTestNames <<= definedTests map ( _.map(_.name).distinct) storeAs definedTestNames triggeredBy compile
最佳答案
storeAs
此时实际上仅用作内部 API,但它会保留评估任务的结果,以便稍后检索。例如,上面的示例被解析器用于制表符补全。您无法在解析期间评估任务,因此这是采用的方法。
triggeredBy
是一种安排命令运行的方法,即使它不依赖于任何东西。它主要是为了在另一个任务运行时执行副作用。在 defineTestNames
的情况下,这可确保每当 test:compile
运行时名称都会保留。
关于scala - storeAs ...triggeredBy 如何在 simple-build-tool 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11975424/