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

时间:2014-01-08 13:25:00

标签: sbt xsbt-web-plugin

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

  

编译中的webappResources<< = baseDirectory {bd => Seq(bd /“dist”/“webapp”)}

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

1 个答案:

答案 0 :(得分:1)

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

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设置的默认值。

阅读Scopes以了解有关“范围”设置的更多信息,即为不同的轴设置不同的值