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

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

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

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

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/ 文件夹来将其用作 unmanaged dependency,但我仍然遇到相同的 Heroku 错误。

有趣的是,该应用程序在本地运行正常且没有错误。有什么我想念的吗?谢谢。

编辑:

构建日志的开头:

失败:

我的猜测是,您从模板创建了 Play 项目。 Initial template 包含 build.sbt 和 gradle 构建(build.gradlegradlewgradlew.bat。在本地,您使用 sbt 进行编译. 然而,Heroku 选择 Gradle build.

问题:您仅将依赖项添加到 build.sbt,但未添加到 gradle.build 文件。

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

如果你想让 Heroku 继续使用 Gradle,那么你必须同时维护这两种类型的构建文件。

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