2013-02-11 31 views
0

我試圖獲得在Heroku下運行的SBT Web應用程序。我已經能夠通過使用這裏描述的JettyLauncher腳本來做到這一點http://scalatra.org/2.2/guides/deployment/heroku.html 但是,我真的想從WAR工件而不是我的src/main/webapp目錄運行,因爲在構建中發生了一些後續處理。使用startScriptForWarSettings在Heroku中運行

當我嘗試但是用StartScriptPlugin.startScriptForWarSettings,因爲它試圖複製WAR文件/tmp/build_26wd72c43fv12/target/jetty-distribution-7.3.1.v20110307/webapps

我的應用程序獲得在啓動時出現錯誤

讀這個:https://devcenter.heroku.com/articles/read-only-filesystem,清楚地解釋,問題是因爲當該腳本運行的網絡動態,它不能寫入/ tmp。

所以我的問題是:有沒有辦法改變在sbt-start-scriptplugin中用於Jetty發行版的目錄?我查看了源代碼,它是使用這個「目標」變量,但我從來沒有看到它的定義方式或位置。

回答

0

有兩種可能的解決方案,我發現:

  1. 在你設置的背景下直接去用context.setWar("target/scala-2.10/mywar_2.10-0.0.1.war")分期產生的戰爭文件的碼頭啓動。在這種情況下,您仍然使用嵌入式Jetty和StartScriptPlugin.startScriptForClassesSettings鍵運行,但它運行於WAR而不是

  2. 使用Heroku的部署:戰爭能力:https://devcenter.heroku.com/articles/war-deployment。這對我來說並不合適,因爲這意味着所有事情現在都在我不太瞭解的環境中運行,而且Heroku對支持這一點很害羞。