我是lagom-scala-api的初学者。我已经使用lagom-scala-play框架开发了rest api。现在我想在heroku上部署我的服务,只是为了进行实时测试。我按照下面的链接继续。
https://www.playframework.com/documentation/2.0/ProductionHeroku
将源代码从github连接到heroku并进行部署。我查看了活动构建日志,发现heroku正在后台运行一些进程。一开始。。。
*---->Scala应用程序检测到
----->正在安装JDK 1.8…完成
----->运行:sbt编译阶段
下载1.2.8:的sbt启动器
发件人https://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/1.2.8/sbt-launch-1.2.8.jar
To /tmp/scala_buildpack_build_dir/.sbt_home/launchers/1.2.8/sbt-launch.jar
下载sbt启动器1.2.8 md5哈希:
发件人https://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/1.2.8/sbt-launch-1.2.8.jar.md5
To /tmp/scala_buildpack_build_dir/.sbt_home/launchers/1.2.8/sbt-launch.jar.md5
/tmp/scala_buildpack_build_dir/.sbt_home/launchers/1.2.8/sbt-launch.jar: OK
正在获取org.scala-sbt 1.2.8(这可能需要一些时间(。。。*
并且在完成之后,它检测到一些错误
[info] Main Scala API documentation to /tmp/scala_buildpack_build_dir/crud-api/target/scala-2.13/api...
model contains 11 documentable templates
[info] Main Scala API documentation successful.
[info] Packaging /tmp/scala_buildpack_build_dir/crud-api/target/scala-2.13/crud-api_2.13-1.0-SNAPSHOT-javadoc.jar ...
[info] Done packaging.
[success] Total time: 9 s, completed Dec 1, 2020 4:01:45 AM
[error] Expected symbol
[error] Not a valid command: -
[error] Expected end of input.
[error] Expected '--'
[error] Expected 'debug'
[error] Expected 'info'
[error] Expected 'warn'
[error] Expected 'error'
[error] Expected 'addPluginSbtFile'
[error] -Xms512M
[error] ^
错误:无法运行sbt!
We're sorry this build is failing. If you can't find the issue in application
code, please submit a ticket so we can help: https://help.heroku.com
You can also try reverting to the previous version of the buildpack by running:
$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-scala#previous-version
Thanks,
Heroku
推送被拒绝,编译Scala应用程序失败。
推送失败的
我有什么东西不见了吗。或者,如果您对如何在heroku或任何其他平台上部署lagom-scalaapi以进行实时测试有任何其他想法。提前谢谢。
在Heroku上部署Lagom通常是不可能的,因为Heroku有一个限制:为同一服务提供服务的dynos不能相互连接。Lagom建立在Play之上,但最重要的是,建立在Akka Clister之上。要形成集群,Akka集群节点必须相互通信。
还有一个单独的问题,它实际上触发了您看到的错误,那就是Lagom项目通常是一个单回购,在一个构建中有许多服务。有时,构建只是服务API sbt模块和服务实现模块。在任何情况下,部署到Heroku都需要将单个服务推送到Heroku git repo。因此,您必须改进Play/sbt构建包以支持Lagom项目:当检测到Lagom项目时,忽略API模块,只部署实现。
但是,同样,即使您进行了构建包改进,您仍然会被Dynos之间的网络分离所导致的集群形成障碍所阻碍。