如何在 SBT 中为容器:启动和打包任务提供不同的 Web 应用资源



我有一个带有纯JS前端和Scala后端的Web应用程序。我想在我的构建管道中使用 Grunt 将 src/main/webapp 处理成目标 dist/webapp dir,其中包含连接/缩小的 js 和 html 文件、编译的 sass 表等。我还想保留原始的JS和HTML文件,以便使用container:start任务进行本地测试,而包任务将使用Grunt处理的资源构建我的WAR文件。当我在SBT中使用以下设置时:

webappResources in Compile <<= baseDirectory { bd => Seq(bd/"dist"/"webapp") }

然后我实现了第二个目标 - 我的 WAR 是使用 dist/webapp 中的 webapp 资源构建的。但是,在本地开发期间使用 container:start 时,我被绑定到同一个目录。有没有办法为不同的目的定义不同的目录?

xsbt-web-plugin 支持 SBT 0.13.1,因此您可以使用更好的语法来定义Compile范围内的webappResources

webappResources in Compile := Seq(baseDirectory.value / "dist" / "webapp")

我可能弄错了,但仅靠webappResources也可以。

webappResources := Seq(baseDirectory.value / "dist" / "webapp")

甚至(除非你想替换原始值而不附加值):

webappResources += baseDirectory.value / "dist" / "webapp"

至于解决方案,我会在build.sbt使用以下(未经测试):

webappResources in package := Seq(baseDirectory.value / "dist" / "webapp")

并保留本地开发的webappResources设置的默认值。

阅读示波器以了解有关"范围"设置的更多信息,即为不同的设置不同的值。

相关内容

  • 没有找到相关文章

最新更新