我尝试将 sbt(版本 0.9.0(配置为在 sbt 中运行包任务时使用 webapp/dist 作为 webappResource 目录,在运行 container:start 命令时使用 webapp/app 作为 webappResource 目录,按照以下描述:
如何在 SBT 中为容器:启动和打包任务提供不同的 Web 应用资源
但它会引发以下错误:
错误:EOF 预期,但找到"包"。 webapp资源在包中 := Seq(baseDirectory.value/"webapp"/"dist"( ^ [错误]解析表达式时出错。
我想该包在 sbt conf 文件中也是一个保留字,还有其他方法可以覆盖包任务中的设置吗?
这样做的原因是我使用 gulp 来管理 Web 客户端。Gulp 从应用程序文件夹运行项目,并将 webclient 项目编译(缩小等(到 dist 文件夹中。当我开发时,我使用如下声明的 webapp/app 文件夹:
webappResources in Compile := Seq(baseDirectory.value/"webapp"/"app"(
当我创建一个版本时,我首先使用 gulp 将 webapp 客户端构建(缩小等(到 webapp/dist 中。然后我想将 webapp/dist 内容打包到最终战争中。
但是在使用包任务时,我无法覆盖上述设置以使用 webapp/dist。
我也尝试像这样创建自己的配置:
webapp资源在编译中 := Seq(baseDirectory.value/"src"/"main"/"webapp"/"app"( lazy val ReleaseWarConfig = config("release-war"( extend (Compile( val root = (file("."(中的项目(。 configs(ReleaseWarConfig(. settings(inConfig(ReleaseWarConfig((webSettings(: _*(. 设置( webappResources in Compile := Seq(baseDirectory.value/"src"/"main"/"webapp"/"dist"( ) 我也在ReleaseConfig中尝试了webappResources而不是Compile。
但它仍然使用 webapp/app 目录而不是 webapp/dist 目录。
任何帮助将不胜感激!!!
项目的目录布局是什么? 听起来你的 Web 应用程序资源目录在 [myproject]/webapp/dist/上,这意味着你在 [myproject]/webapp/dist/下也有 WEB-INF/和 WEB-INF/web.xml(以及各种其他可选资源(。 这是对的吗?
若要将 Web 应用程序资源目录的位置设置为 [myproject]/webapp/dist/,请将以下设置添加到 sbt 配置中:
build.sbt:
webappSrc in webapp <<= (baseDirectory in Compile) map { _ / "webapp" / "dist" }
您可以在自述文件中阅读有关此设置的更多信息。