Revolver/Spray 的自定义资源目录

Custom resourceDirectory for Revolver/Spray

我有一个带有基本前端组件的 Spray 应用程序,源代码位于 src/main/frontend 中,部署版本(已编译 sass、缩小等)位于 Spray 的默认资源位置 src/main/resources .我想将 Revolver 的 re-start 任务的资源目录更改为 src/main/frontend,以便在开发时更快地看到更改。

我试过添加设置

resourceDirectory in Revolver.reStart <<= baseDirectory(_ / "src" / "main" / "frontend")

不过好像没有效果。我猜是因为 resourceDirectoryCompile 范围内的设置,而不是 Revolver 本身的设置。在 SBT 控制台中:

> reStart:resourceDirectory
[info] /Users/cartew01/workspace/applaudio-spray/src/main/frontend
> compile:resourceDirectory
[info] /Users/cartew01/workspace/applaudio-spray/src/main/resources

有谁知道如何为 re-start 任务更改此设置,但不能为任何其他任务更改此设置?可能通过创建一个自定义任务来调用使用附加设置重新启动?

感谢您的帮助。

您应该在重新启动时将另一个资源目录添加到 fullClasspath,例如 (fullClasspath in Revolver.reStart) += (WebKeys.public in Assets in web).value,或者在您的情况下 fullClasspath in Revolver.reStart += baseDirectory(_ / "src" / "main" / "frontend") - 实际上,getFromResourceDirectorygetFromResource 将提供来自 class 路径的内容。

为了更好地理解它,我建议 运行 inspect reStart - 它取决于 compile:products,而 compile:products 又取决于 compile:copyResources,而 compile:copyResources 又取决于 compile:resourceDirectories。因此,reStart 将使用编译器生成的任何内容,即从某处复制的资源。上面的解决方案似乎更容易一些