У меня есть настройка микросервисов Eureka Server и несколько приложений с весенней загрузкой в качестве клиентов Eureka. Это настроено как многомодульный проект maven на родительском (корневом) уровне. Ниже представлена иерархия:
parent (multi-module parent pom.xml)
|_ eureka-server-spring-boot-app (individual pom.xml)
|_ eureka-client-spring-boot-app-1 (individual pom.xml)
|_ eureka-client-spring-boot-app-2 (individual pom.xml)
|_ eureka-client-spring-boot-app-3 (individual pom.xml)
.
.
Я пытался запустить все модули в порядке, определенном в родительском файле pom.xml. Но когда я запускаю mvn spring-boot:run на родительском уровне, он запускает только первый модуль (Eureka Server). Остальные модули не развернуты. Я пробовал читать SO, но не нашел подходящих ответов.
Я хочу, чтобы maven запускал все модули по порядку из родительского каталога. Можно ли как-нибудь достичь этого?
Я согласен. Я просто дал дополнительную информацию. Так что, если структура проекта неправильная, я могу исправить и это. Есть предложения @ g00glen00b?
Причина, по которой это не работает, заключается в том, что Maven будет последовательно запускать эти плагины Maven в каждом проекте, однако, поскольку запуск проекта загрузки Spring не завершается немедленно, он никогда не достигнет цели spring-boot:run для второго или третьего модуля. Решением было бы создать отдельный сценарий оболочки и заставить каждый из модулей работать в другом потоке. Не знаю, есть ли у Maven что-то подобное. На первый взгляд, форк JVM не помог.




Вместо этого используйте mvn spring-boot:start, так как это не блокирует другие операции.
Это действительно не запускает приложение. Я считаю, что он предназначен для запуска приложения перед запуском интеграционных тестов и остановки после этого. Так что, даже если это начнется, это может быть хорошим хаком / обходным решением, но не совсем для производства, верно?
mvn spring-boot:run он развертывает / запускает приложение, но останавливается после запуска модуля eureka-server, который является первым по порядку. Чтобы использовать mvn spring-boot:start, мне нужно внести какие-либо изменения в родительский pom.xml? Выдает ошибку как No plugin found for prefix 'spring-boot' in the current project.
Идея состоит в том, что вы добавляете конфигурацию плагина к каждому подмодулю, привязываетесь к цели где-то между очисткой и установкой, а затем просто запускаете mvn clean install из корневого модуля.
Я согласен, что это не подходит для производства, но, вероятно, никакая конфигурация с использованием плагина maven не будет подходить для производства. Как предлагает @ g00glen00b, решение на основе сценария или решение на основе заданий Jenkins с использованием Puppet / Chef, вероятно, лучше.
@Karthikeyan Проблема в данном случае не связана ни с микросервисы, ни с Netflix-Eureka.