Как получить 'mvn lagom:runAll', чтобы моя служба прослушивала порт?

У меня были проблемы с запуском моего первого сервиса, и я решил добавить проекты hello-api и hello-impl из проекта lagom Maven archtype, чтобы посмотреть, будет ли он работать. Было, а у меня нет.

Фон

Поскольку другие члены команды являются чисто Java-разработчиками, я пытался избежать использования sbt и activator. Таким образом, цель состоит в том, чтобы все работало в maven.

Вот фрагмент вывода сценария «mvn install», показывающий другие созданные службы.

$ mvn install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Archetype - mai-svcs
[INFO] mai-svc-common
[INFO] mai-actors-api               <======= WANT THE SERVICE FOR THIS ONE TO RUN
[INFO] mai-namespace-api
[INFO] mai-actors-impl
[INFO] mai-namespace-impl
[INFO] mai-i18n-phrases-api
[INFO] hello-api
[INFO] hello-impl
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Archetype - mai-svcs 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Archetype - mai-svcs ............................... SUCCESS [  2.774 s]
[INFO] mai-svc-common ..................................... SUCCESS [  7.190 s]
[INFO] mai-actors-api ..................................... SUCCESS [ 24.706 s]
[INFO] mai-namespace-api .................................. SUCCESS [ 12.628 s]
[INFO] mai-actors-impl .................................... SUCCESS [ 29.061 s]
[INFO] mai-namespace-impl ................................. SUCCESS [ 21.294 s]
[INFO] mai-i18n-phrases-api ............................... SUCCESS [ 22.091 s]
[INFO] hello-api .......................................... SUCCESS [  3.546 s]

ПРИМЕЧАНИЯ. Был создан класс MAIActorsModule, аналогичный классу HelloModule, и файл application.conf добавлен в папку src/main/resources.

Когда выдается команда «mvn lagom:runAll», изначально регистрируется порт службы приветствия, но порт другой службы не регистрируется.

$ mvn lagom:runAll
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Archetype - mai-svcs
[INFO] mai-svc-common
[INFO] mai-actors-api
[INFO] mai-namespace-api
[INFO] mai-actors-impl
[INFO] mai-namespace-impl
[INFO] mai-i18n-phrases-api
[INFO] hello-api
[INFO] hello-impl
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Archetype - mai-svcs 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- lagom-maven-plugin:1.2.1:runAll (default-cli) @ mai-svcs ---
[INFO] Starting Kafka
[INFO] Starting Cassandra
.[INFO] Did not find Netty's native epoll transport in the classpath, defaulting to NIO.
....[INFO] Using data-center name 'datacenter1' for DCAwareRoundRobinPolicy (if this is incorrect, please provide the correct datacenter name with DCAwareRoundRobinPolicy constructor)
[INFO] New Cassandra host /127.0.0.1:4000 added

[INFO] Cassandra server running at 127.0.0.1:4000
[INFO] Service locator is running at http://localhost:8000
[INFO] Service gateway is running at http://localhost:9000
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\lusp\mai_svcs\mai-svcs\hello-api\src\main\resources
[INFO] Nothing to compile - all classes are up to date
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
**[INFO] Nothing to compile - all classes are up to date
[INFO] Service hello-impl listening for HTTP on 0:0:0:0:0:0:0:0:57797
//           ----- NO ENTRY FOR mai-actors-impl!!!  -----
[INFO] (Service started, press enter to stop and go back to the console...)**

Какие шаги я пропустил?


person tevye    schedule 09.01.2017    source источник


Ответы (1)


Каждый из ваших <service>-impl проектов должен:

  1. Вызвать lagom-maven-plugin
  2. Настройте его со свойством <lagomService>true</lagomService>

Вот пример фрагмента того, что вам нужно добавить в файл pom.xml в каждом проекте реализации службы:

<build>
    <plugins>
        <plugin>
            <groupId>com.lightbend.lagom</groupId>
            <artifactId>lagom-maven-plugin</artifactId>
            <configuration>
                <lagomService>true</lagomService>
            </configuration>
        </plugin>
    </plugins>
</build>

Документация Lagom содержит более подробную информацию на странице под названием Определение сборки Lagom

person Tim Moore    schedule 11.01.2017