Lagom/Play 应用程序中的主要 class 是什么?

What is the Main class in a Lagom/Play application?

我正在尝试了解如何在生产环境中打包和部署我的 lagom 应用程序。文档对如何实际执行此操作出奇地含糊其辞,当我尝试使用 sbt-native-packager 到 运行 universal:packageBin 时,我收到警告 You have no main class in your project. No start script will be generated.

有没有人解决过这个问题并且知道好的教程或可以参考的东西?

https://github.com/lagom/lagom/blob/a35fab1ad8a0c4a3d28d6c86ae31a2408da2e340/dev/sbt-plugin/src/main/scala/com/lightbend/lagom/sbt/LagomSettings.scala#L28

将其添加到您的项目中即可解决问题。也就是说,通常你不应该看到这个警告,因为 Lagom 插件应该为你配置它。为什么您可能会看到此警告,我能想到的原因有两个。

首先是您的项目没有启用Lagom插件。如果是这样,并且您没有在真正知道自己在做什么的情况下做一些高级的事情(如果您真的知道自己在做什么,如果您不得不问这个问题,我会感到惊讶),那么您可能有配置错误,需要启用Lagom插件。

第二个可能是您 运行正在 universal:packageBin 处理多个项目,其中一些确实启用了 Lagom 插件,而另一些则没有。在这种情况下,您可能只想为您的 Lagom 项目构建生产工件,而不是为所有其他项目(例如 API 项目或根项目)。所以,只是 运行 它为您服务(例如,运行 my-service-impl/universal:packageBin)。