1

我尝试将 sbt(版本 0.9.0)配置为在 sbt 中运行包任务时使用 webapp/dist 作为 webappResource 目录,并在运行 container:start 命令时使用 webapp/app 作为 webappResource 目录,遵循以下描述:

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

但它会引发以下错误:

    错误:预期为 eof,但找到了“包”。
    包中的 webappResources := Seq(baseDirectory.value / "webapp" / "dist")
                       ^
    [错误] 解析表达式时出错。

我猜这个包也是 sbt conf 文件中的保留字,还有其他方法可以覆盖包任务中的设置吗?

这样做的原因是我使用 gulp 来管理 webclient。Gulp 从 app 文件夹运行项目,并将 webclient 项目编译(缩小等)到 dist 文件夹。当我开发时,我使用如下声明的 webapp/app 文件夹:

    编译中的 webappResources := Seq(baseDirectory.value / "webapp" / "app")

当我创建一个版本时,我首先使用 gulp 将 webapp 客户端构建(缩小等)到 webapp/dist 中。然后我想把 webapp/dist 的内容打包到最后的战争中。

但是在使用包任务时,我无法覆盖上面的设置以使用 webapp/dist。

我也尝试过像这样创建自己的配置:

    编译中的 webappResources := Seq(baseDirectory.value / "src" / "main" / "webapp" / "app")

    惰性 val ReleaseWarConfig = config("release-war") 扩展(编译)

    val root = (文件中的项目("."))。
      配置(ReleaseWarConfig)。
      设置(inConfig(ReleaseWarConfig)(webSettings):_*)。
      设置(
        编译中的 webappResources := Seq(baseDirectory.value/"src"/"main"/"webapp"/"dist")
    )
    // 我也在 ReleaseConfig 中尝试了 webappResources 而不是 Compile ..

但它仍然使用 webapp/app 目录而不是 webapp/dist 目录。

任何帮助将不胜感激!!!!

4

1 回答 1

0

您的项目的目录布局是什么?听起来您的 Web 应用程序资源目录位于[myproject]/webapp/dist/,这意味着您在 [myproject]/webapp/dist 下有WEB -INF/WEB-INF/web.xml(以及各种其他可选资源)/也是。这个对吗?

要将 Web 应用程序资源目录的位置设置为[myproject]/webapp/dist/,请将以下设置添加到您的 sbt 配置中:

构建.sbt

webappSrc in webapp <<= (baseDirectory in Compile) map  { _ / "webapp" / "dist" }

您可以在自述文件中阅读有关此设置的更多信息。

于 2014-12-10T04:00:00.200 回答