2017-10-27 1 views
0

今日私はsbt(1.0.2)で遊んでいました。 (inspect tree compileを使用して)をコンパイルタスクの依存関係ツリーをコンパイルすると、そのトレースがunmanagedSourceDirectoriesに設定されていることが予想されますが、そこには存在しませんでした。unmanagedSourcesはコンパイルされていませんでしたsbtで検査されたツリー

木は、私はあなたがその木を調べる場合は、unmanagedSourceDirectoriesを見つけるだろうタスクを見つけることができるその葉の一つであるためにトリミングしているように見えました。

私の質問は、正確にはinspect treeの出力を制限するものですか?私はそれが最大深さかもしれないと推測しましたが、既にのソースの深さレベルがcompileタスクの深さよりも深くなっていました。 そして、どのようにすればフル依存性ツリーのタスクを得ることができますか?

答えて

0

デバッグの一時間後、私は特にsources in (ThisProject, Compile, compile)sourcesに依存compile in (ThisProject, Compile)のように、この正確な範囲で任意の値を持っていない、したがって、ツリートラバーサルを続けると、この葉作るていないタスクをコンパイル考え出し。

しかし、この厳密な範囲内でsourcesのキーの値が見つからない場合は、sources in (ThisProject, Compile, compile)の値を検索する点で、フォールバックモードになり、値の検索はdelegated to more general scopesになります。

私たちの場合、スコープsources in (ThisProject, Compile, *)に値があります。 unmanagedSourceDirectoriesの設定に戻るこの依存関係のツリー全体を見つけることができます。

結論:inspect treeはのアカウントにスコープ委任先の依存関係を取ることはありません。

+0

スコープデリゲートを考慮してツリーを検査するにはどうすればよいでしょうか? –

関連する問題