Что такое основной класс в приложении Lagom/Play?

Я пытаюсь понять, как упаковать и развернуть мое lagom приложение в рабочей среде. Документы на удивление скромны в отношении того, как это сделать на самом деле, и когда я пытаюсь использовать sbt-native-packager для запуска universal:packageBin, я получаю предупреждение, что You have no main class in your project. No start script will be generated.

Кто-нибудь работал с этим и знает хороший учебник или что-то, на что можно ссылаться?


1
393
1

Ответ:

Решено

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).