heroku - 依赖问题导致 Scala Play 在 heroku 上构建失败

heroku - dependency issue causing Scala Play build to fail on heroku

提问人:kriskanya 提问时间:11/21/2018 最后编辑:kriskanya 更新时间:11/21/2018 访问量:77

问:

我是 Scala 和 Play 框架 (2.6.x) 的新手。请参阅下面的失败屏幕截图。git push heroku master

我需要jsoup依赖项(第一个):build.sbt

libraryDependencies += "org.jsoup" % "jsoup" % "1.11.3"
libraryDependencies += guice
libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "3.1.2" % Test

并在我的控制器中使用它:

import org.jsoup.Jsoup
import org.jsoup.nodes.Document

...

val res = scala.io.Source.fromURL(data.url)("ISO-8859-1").mkString
val s = Jsoup.parse(res).title

此外,我试图通过将其添加到 lib/ 文件夹来将其用作非托管依赖项,尽管我仍然收到相同的 Heroku 错误。

有趣的是,该应用程序在本地运行良好且没有错误。我错过了什么吗?谢谢。

编辑:

构建日志的开头:enter image description here

失败:enter image description here

Scala Heroku PlayFramework

评论

0赞 ygor 11/21/2018
我在复制这个时遇到了麻烦。例如,当我将我的 Scala Play 应用程序推送到 Heroku 时,我没有看到 .我的构建从“你的呢?请发布整个构建日志。compilePlatBinaryScalaremote: -----> Play 2.x app detected remote: -----> Installing JDK 1.8... done remote: -----> Running: sbt compile stage
0赞 ygor 11/21/2018
您是否使用 gradle 进行构建?
0赞 kriskanya 11/21/2018
是的。我已经发布了上面的屏幕截图。

答:

1赞 ygor 11/21/2018 #1

我的猜测是,您从模板创建了 Play 项目。初始模板包含两者,但也包含 gradle 构建 (, , .在本地,用于编译。然而,Heroku 选择了 Gradle 构建。build.sbtbuild.gradlegradlewgradlew.batsbt

问题:您仅将依赖项添加到 中,而未添加到文件中。build.sbtgradle.build

如果您真的不需要 Gradle,那么我建议从您的存储库中删除 Gradle 构建文件并尝试再次推送。

如果你想使用 Gradle 保留 Heroku,那么你必须维护这两种类型的构建文件。

可能还有一种方法可以指示 Heroku 用作首选。sbt

评论

0赞 kriskanya 11/21/2018
如果我想保留 gradle,只需在 ?类似的东西(顺便说一句,这不起作用)。dependenciesplay 'org.jsoup:jsoup:1.11.3'
0赞 ygor 11/21/2018
嗯,对我有用。比我跑.什么不起作用?收到任何错误吗?play "org.jsoup:jsoup':1.11.3"gradlew.bat compilePlayBinaryScala
0赞 kriskanya 11/21/2018
对不起,应该更具体。看起来构建没有失败,但是当我访问 url 时,我看到的只是一个带有 .日志什么也没说,只是An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the commandRelease v2 created by user...
0赞 ygor 11/21/2018
是的,我知道,你现在需要设置你的 heroku procfile
1赞 ygor 11/21/2018
但这应该是一个新问题。顺便说一句,我的答案解决了你的编译问题吗?