提问人:kriskanya 提问时间:11/21/2018 最后编辑:kriskanya 更新时间:11/21/2018 访问量:77
heroku - 依赖问题导致 Scala Play 在 heroku 上构建失败
heroku - dependency issue causing Scala Play build to fail on heroku
问:
我是 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 错误。
有趣的是,该应用程序在本地运行良好且没有错误。我错过了什么吗?谢谢。
编辑:
答:
1赞
ygor
11/21/2018
#1
我的猜测是,您从模板创建了 Play 项目。初始模板包含两者,但也包含 gradle 构建 (, , .在本地,用于编译。然而,Heroku 选择了 Gradle 构建。build.sbt
build.gradle
gradlew
gradlew.bat
sbt
问题:您仅将依赖项添加到 中,而未添加到文件中。build.sbt
gradle.build
如果您真的不需要 Gradle,那么我建议从您的存储库中删除 Gradle 构建文件并尝试再次推送。
如果你想使用 Gradle 保留 Heroku,那么你必须维护这两种类型的构建文件。
可能还有一种方法可以指示 Heroku 用作首选。sbt
评论
0赞
kriskanya
11/21/2018
如果我想保留 gradle,只需在 ?类似的东西(顺便说一句,这不起作用)。dependencies
play '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 command
Release v2 created by user...
0赞
ygor
11/21/2018
是的,我知道,你现在需要设置你的 heroku procfile
1赞
ygor
11/21/2018
但这应该是一个新问题。顺便说一句,我的答案解决了你的编译问题吗?
评论
compilePlatBinaryScala
remote: -----> Play 2.x app detected remote: -----> Installing JDK 1.8... done remote: -----> Running: sbt compile stage