Проект состоит из 6 модулей:
- "demo-multimodule-bom" - Модуль BOM (Maven Bill of Material)
- "demo-multimodule-checkstyle" - Модуль проверки стиля написания исходного кода
- "demo-multimodule-parent" - Модуль Maven-parent
- "demo-multimodule-domain" - Модуль доменных сущьностей
- "demo-multimodule-service1" - Исполняемый Модуль Spring Boot приложения для работы с JPA (Сервис 1)
- "demo-multimodule-service2" - Исполняемый Модуль Spring Boot приложения для работы с REST "demo-multimodule-service1" (Сервис 2)
В корневом каталоге проекта агрегирующий файл pom.xml, описывающий порядок maven-сборки 6 модулей.
Cборка Maven-проекта:
- в корневом каталоге проекта выполнить: "mvn clean install"
Результат сборки Maven-проекта:
- JAR-файл для исполняемого приложения "service1": demo-multimodule-service1/target/demo-multimodule-service1-1.0-SNAPSHOT.jar
- JAR-файл для исполняемого приложения "service2": demo-multimodule-service1/target/demo-multimodule-service2-1.0-SNAPSHOT.jar
Порядок локального запуска модулей проекта:
- В каталоге demo-multimodule-service1 выполнить: "mvn spring-boot:run"
- В веб-браузере открыть http://localhost:8090/api/authors/ - будет загружен json файл с результатом запроса.
- В каталоге demo-multimodule-service2 выполнить: "mvn spring-boot:run"
- В веб-браузере открыть http://localhost:8080/ - будет отражена страница.
Порядок развертывания модулей проекта: для работы приложения необходимо развернуть 3 узла.
-
На узле 1 разворачивается и настраивается база PostgreSQL 9
-
На узле 2 разворачивается сервис 1 и запускается: "java -jar demo-multimodule-service1-1.0-SNAPSHOT.jar".
Для его работы необходимо установить следующие переменные среды окружения: DATASOURCE_URI - URI к базе данных (можно использовать H2 и PostgreSql другие драйвера просто не добавлены в дистрибутив). Например: jdbc:postgresql://localhost:5432/book DATASOURCE_USERNAME - имя пользователя БД DATASOURCE_PASSWORD - пароль пользователя БД Схема базы создается автоматически и туда при запуске добавляется запись. При остановке схема удаляется. -
На узле 3 разворачивается сервис 2 и запускается: "java -jar demo-multimodule-service2-1.0-SNAPSHOT.jar".
Для его работы необходимо установить следующие переменные среды окружения: SERVICE1_URI - URI к REST объекту сервиса 1. Например: http://localhost:8090/api/authors/1. Лучше менять только хост и порт.