如何获得完整的递归' SBT中任务依赖的树/图?

时间:2014-07-04 12:33:39

标签: scala sbt

当我在一个简单的sbt项目上例如inspect tree compile时:

sbt> inspect tree compile
[info] compile:compile = Task[sbt.inc.Analysis]
[info]   +-compile:compile::compileInputs = Task[sbt.Compiler$Inputs]
[info]   | +-*/*:compileOrder = Mixed
[info]   | +-compile:dependencyClasspath = Task[scala.collection.Seq[sbt.Attributed[java.io.File]]]
[info]   | +-*/*:maxErrors = 100
[info]   | +-compile:sources = Task[scala.collection.Seq[java.io.File]]
[info]   | +-compile:scalacOptions = Task[scala.collection.Seq[java.lang.String]]
[info]   | +-*/*:javacOptions = Task[scala.collection.Seq[java.lang.String]]
[info]   | +-*:compilers = Task[sbt.Compiler$Compilers]
[info]   | +-compile:incCompileSetup = Task[sbt.Compiler$IncSetup]
[info]   | +-compile:compile::streams = Task[sbt.std.TaskStreams[sbt.Init$ScopedKey[_ <: Any]]]
[info]   | | +-*/*:streamsManager = Task[sbt.std.Streams[sbt.Init$ScopedKey[_ <: Any]]]
[info]   | | 
[info]   | +-*/*:sourcePositionMappers = Task[scala.collection.Seq[scala.Function1[xsbti.Position, scala.Option[xsbti.Position..
[info]   | +-compile:classDirectory = target/scala-2.10/classes
[info]   | 
[info]   +-compile:compile::streams = Task[sbt.std.TaskStreams[sbt.Init$ScopedKey[_ <: Any]]]
[info]     +-*/*:streamsManager = Task[sbt.std.Streams[sbt.Init$ScopedKey[_ <: Any]]]

此树的“深度”是有限的:例如,它提到compile:sources,它本身有许多依赖项:

sbt> inspect tree compile:sources
[info] compile:sources = Task[scala.collection.Seq[java.io.File]]
[info]   +-compile:unmanagedSources = Task[scala.collection.Seq[ja..
[info]   | +-*/*:excludeFilter = sbt.SimpleFileFilter@745ef9f2
[info]   | +-*:baseDirectory = /tmp/xxxx
[info]   | +-*/*:unmanagedSources::includeFilter = sbt.SimpleFilte..
[info]   | +-*/*:sourcesInBase = true
[info]   | +-compile:unmanagedSourceDirectories = List(/tmp/xxxx/s..
[info]   |   +-compile:javaSource = src/main/java
[info]   |   | +-compile:sourceDirectory = src/main
[info]   |   |   +-*:sourceDirectory = src
[info]   |   |   | +-*:baseDirectory = /tmp/xxxx
[info]   |   |   |   +-*:thisProject = Project(id: xxxx, base: /tm..
[info]   |   |   |   
[info]   |   |   +-compile:configuration = compile
[info]   |   |   
[info]   |   +-compile:scalaSource = src/main/scala
[info]   |     +-compile:sourceDirectory = src/main
[info]   |       +-*:sourceDirectory = src
[info]   |       | +-*:baseDirectory = /tmp/xxxx
[info]   |       |   +-*:thisProject = Project(id: xxxx, base: /tm..
[info]   |       |   
[info]   |       +-compile:configuration = compile
[info]   |       
[info]   +-compile:managedSources = Task[scala.collection.Seq[java..
[info]     +-compile:sourceGenerators = List()

我想以某种方式能够分析“完整图片” - 例如,我有一个项目,assembly任务似乎可以运行两次任务。现在很难弄清楚发生了什么。

0 个答案:

没有答案