【问题标题】:Deploy a Play 2.0.2 application on Heroku在 Heroku 上部署 Play 2.0.2 应用程序
【发布时间】:2013-12-17 20:44:38
【问题描述】:

我正在尝试在 Heroku 上部署一个全新的应用程序。它是使用 Play 制作的!框架 2.0.2。

我按照此页面的所有步骤操作:https://github.com/playframework/Play20/wiki/ProductionHeroku

但是当我部署它时,得到以下错误

> -----> Heroku 接收推送 -----> 玩!检测到应用 -----> 警告:玩!在 dependencies.yml 中未指定版本。默认版本 : 1.2.4 正在使用.... -----> 安装播放! 1.2.4…… -----> 完成 -----> 安装 ivysettings.xml ..... 完成 -----> 建筑游戏!应用... ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~玩! 1.2.4,http://www.playframework.org ~ 1.2.4 建设游戏!目录中的应用程序 ./ 解决依赖关系: .play/play 依赖关系 ./ --forProd --forceCopy --silent -Duser.home=/tmp/build_2g0tyg50mwz8m 2>&1 ~!! /tmp/build_2g0tyg50mwz8m/conf/dependencies.yml 不存在 ~ ~ 完成! ~ 预编译:.play/play 预编译 ./ --silent 2>&1 〜哎呀。 conf/routes 或 conf/application.conf 丢失。 ~ /tmp/build_2g0tyg50mwz8m 似乎没有托管有效的应用程序。 ~ !无法构建 Play!应用 !清除播放!来自缓存的框架 ! Heroku push 被拒绝,无法编译 Play!应用程序`

所以它要求我在 dependencies.yml 中定义版本。但是,如果在新版本的框架中没有这样的文件,我怎么能这样做呢?

我发现一个人说他通过将整个框架上传到 Heroku 来解决这个问题。但这对我来说似乎不对。

有什么办法可以解决这个问题吗?

非常感谢。

【问题讨论】:

  • 这很奇怪,因为 Heroku 检测到您的应用是使用 Play 版本 1.2.4 构建的。它是 Heroku 的新实例还是旧实例?你能展示你的 Procfile 吗?
  • 这是 Heroku 的一个新实例。不幸的是,1.2.4 是它的默认版本。这是我的 Procfile "web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS}"
  • 如果我在下面的回答不起作用,请确保您的项目位于 git repo 的根目录中。
  • 就像你说的。在我将项目移动到 git repo 的根目录后,它工作了。非常感谢!
  • 酷。很高兴这有效。我已经更新了我的答案以反映这一点。

标签: heroku playframework-2.0


【解决方案1】:

这是默认构建包中的一个错误。我在这里记录了一个问题https://github.com/heroku/heroku-buildpack-play/issues/17

目前,James 的解决方案是一个很好的解决方法。

【讨论】:

【解决方案2】:

确保您的项目位于 git repo 的根目录中。

你也可以试试:

heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-scala.git

这将迫使 Heroku 使用 Play 2 buildpack。

【讨论】:

  • 问题似乎是因为 Heroku 根据 play 2 应用程序布局中不再存在的文件查找您正在使用的 play 版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 2011-12-05
  • 2017-09-26
  • 2018-03-29
  • 1970-01-01
相关资源
最近更新 更多