使用startScriptForWarSettings在Heroku中运行

使用startScriptForWarSettings在Heroku中运行,heroku,sbt,xsbt-web-plugin,Heroku,Sbt,Xsbt Web Plugin,我正在尝试在Heroku下运行SBT web应用程序。我已经能够通过使用这里描述的JettyLancher脚本来实现这一点 但是,我确实希望从WAR工件运行,而不是从src/main/webapp目录运行,因为在构建中会发生一些后续处理 但是,当我尝试使用StartScriptPlugin.startScriptForWarSettings时,我的应用程序在启动时出错,因为它试图将WAR文件复制到/tmp/build\u 26wd72c43fv12/target/jetty-distributi

我正在尝试在Heroku下运行SBT web应用程序。我已经能够通过使用这里描述的JettyLancher脚本来实现这一点 但是,我确实希望从WAR工件运行,而不是从src/main/webapp目录运行,因为在构建中会发生一些后续处理

但是,当我尝试使用StartScriptPlugin.startScriptForWarSettings时,我的应用程序在启动时出错,因为它试图将WAR文件复制到/tmp/build\u 26wd72c43fv12/target/jetty-distribution-7.3.1.v20110307/webapps

阅读此:,可以清楚地解释问题是因为当web dyno运行该脚本时,它无法写入/tmp


所以我的问题是:有没有一种方法可以更改sbt start脚本插件中Jetty发行版使用的目录?我查看了源代码,使用的是这个“目标”变量,但我从来没有看到它是如何定义的或在哪里定义的。

我发现了两种可能的解决方案:

  • 在Jetty launcher中,您将上下文设置为直接转到通过使用
    context.setWar(“target/scala-2.10/mywar_2.10-0.0.1.war”)
    登台生成的war文件。在本例中,您仍然使用嵌入式Jetty和StartScriptPlugin.startscriptforclassettings键运行,但它是从WAR而不是从

  • 使用Heroku的部署:作战能力:。这对我来说不是很好,因为这意味着现在一切都在一个我不太理解的环境中运行,Heroku不敢支持这一点