Scala 如何获得完整的';递归';SBT中任务依赖关系的树/图?
例如,当我在一个简单的sbt项目上检查树编译时:Scala 如何获得完整的';递归';SBT中任务依赖关系的树/图?,scala,sbt,Scala,Sbt,例如,当我在一个简单的sbt项目上检查树编译时: 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
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]]]
我希望能够以某种方式分析“完整的图片”-例如,我有一个项目,
assembly
任务似乎要运行一些任务两次。现在很难弄清楚到底发生了什么。你能为此打开一个功能请求吗?我相信,一旦sbt服务器的工作开始进入UI,我们将在这一领域看到一些东西,但跟踪这一点还是很好的。
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()