sbtで依存しているprojectのみにcleanなどの特定のタスクを実行する

以下のような質問を某所で受けたので

f:id:xuwei:20191218131602p:plain

書きました

gist.github.com

既にあるとか、もっといい感じに書ける、みたいなのがあればお知らせください。

ちなみに、デフォルトでは単体のprojectしかcleanしないのは、完全にsbt的には意図した挙動のはずです。 デフォルトが今回自分が書いたような挙動では、逆に特定の単体のprojectだけをcleanしようとすると手段がなくて困るので。とはいえ、その手段が提供されていればデフォルトのcleanの挙動がそっちでも困らない?といえるかもしれませんが。