代码之家  ›  专栏  ›  技术社区  ›  NiMa Thr

sbt中未在编译检查树中的非托管源

sbt
  •  0
  • NiMa Thr  · 技术社区  · 8 年前

    今天我在玩sbt( 1.0.2 ); 检查 编写 任务依存关系树(使用 inspect tree compile ),期望找到它的踪迹 但它不在那里。

    这棵树似乎被修剪了,因为我可以在它的一片叶子上找到任务 来源 如果你检查它的树你会发现 .

    inspect tree 输出我猜测可能是最大深度,但已经有树叶比 来源 树上的深度级别 compile 任务 我怎么才能 为了一项任务?

    1 回复  |  直到 8 年前
        1
  •  0
  •   NiMa Thr    8 年前

    经过一个小时的调试,我把编译任务想象成 compile in (ThisProject, Compile) 具体取决于 sources in (ThisProject, Compile, compile) 和 sources 在这个确切的范围内没有任何值,因此树遍历不会继续,并使其成为叶子。

    然而,在发现价值方面 中的源代码(ThisProject,Compile,Compile) 当sbt未找到键的值时 来源 在这个确切的范围内,它进入回退模式,值搜索将 delegated to more general scopes

    在我们的例子中,范围中有一个值 sources in (ThisProject, Compile, *) . 你可以找到一个完整的依赖树,可以追溯到 unmanagedSourceDirectories

    结论: inspect tree 范围被授权人 s考虑在内。