我尝试配置sbt(版本0.9.0),在sbt中运行package task时使用webapp / dist作为webappResource目录,运行container:start命令时webapp / app作为webappResource目录,遵循以下描述:
How to have different webapp resources for container:start and package tasks in SBT
但它会引发以下错误:
error: eof expected but 'package' found. webappResources in package := Seq(baseDirectory.value / "webapp" / "dist") ^ [error] Error parsing expression.
我猜这个包也是sbt conf文件中的保留字,是否有任何其他方式来覆盖包任务中的设置?
这样做的原因是我使用gulp来管理webclient。 Gulp从app文件夹运行项目,并将webclient项目编译(缩小等)到dist文件夹。当我开发时,我使用如下所述的webapp / app文件夹:
webappResources in Compile := Seq(baseDirectory.value / "webapp" / "app")
当我创建一个版本时,我首先使用gulp将webapp客户端构建(缩小等)到webapp / dist中。然后我想将webapp / dist内容打包到最后的战争中。
但是在使用套餐任务时,我无法覆盖上面的设置以使用webapp / dist。
我也试过像这样创建自己的配置:
webappResources in Compile := Seq(baseDirectory.value / "src" / "main" / "webapp" / "app") lazy val ReleaseWarConfig = config("release-war") extend (Compile) val root = (project in file(".")). configs(ReleaseWarConfig). settings(inConfig(ReleaseWarConfig)(webSettings): _*). settings( webappResources in Compile := Seq(baseDirectory.value/"src"/"main"/"webapp"/"dist") ) // I have also tried webappResources in ReleaseConfig instead of Compile ..
但它仍然使用webapp / app目录而不是webapp / dist目录。
非常感谢任何帮助!!!!
答案 0 :(得分:0)
项目的目录布局是什么?听起来你有 [myproject] / webapp / dist / 的Web应用程序资源目录,这意味着你有 WEB-INF / 和 WEB-INF / web [myproject] / webapp / dist / 下的.xml (以及各种其他可选资源)。这是对的吗?
要将Web应用程序资源目录的位置设置为 [myproject] / webapp / dist / ,请将以下设置添加到您的sbt配置中:
build.sbt :
webappSrc in webapp <<= (baseDirectory in Compile) map { _ / "webapp" / "dist" }
您可以详细了解此设置in the readme。