Scala SBT:在本地依赖关系发生变化时触发操作

emc*_*sen 5 scala sbt

在SBT中,只要源文件发生更改,就可以使用"〜"标记触发操作.例如,

sbt> ~test
Run Code Online (Sandbox Code Playgroud)

将在源更改时运行单元测试.

当源更改本地依赖关系发生更改时,是否有任何好的方法可以触发操作?当同时开发两个项目时,这将非常有用,其中一个项目取决于另一个项目.

我知道你可以通过手动指定文件基础项目的路径来获得这种行为,但这很脆弱,而且SBT已经知道它在哪里得到它的本地工件,所以这是我想要避免的.

Mar*_*rah 1

根据Triggered Execution的文档,watchSources您可以在该任务中添加要监视的其他文件。

另一个问题来看,该managedClasspath任务提供了来自托管依赖项的类路径部分。

然后,以下定义将托管测试类路径添加到文件中以监视触发的执行:

watchSources <++=
  (managedClasspath in Test) map { cp => cp.files }
Run Code Online (Sandbox Code Playgroud)

在您想要触发的每个项目中定义它。