我有一个带有纯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
设置的默认值。
阅读示波器以了解有关"范围"设置的更多信息,即为不同的轴设置不同的值。