Обзор:
В этой статье мы реализуем многомодульное приложение spring boot. Мы будем использовать систему сборки gradle. Цель здесь состоит в том, чтобы создать приложение для микросервисов, которое будет рассмотрено в следующих статьях.
Расположение:
Здесь мы собираемся использовать плоскую компоновку, чтобы каталоги приложений оставались родными братьями и сестрами корневого каталога проекта (рис. 1). Преимущество плоской компоновки заключается в том, что мы можем иметь отдельный репозиторий git для каждого приложения. В файле settings.gradle вашего корневого проекта нам нужно использовать include Flat с подпроектом.
Рис. 1. Структура каталогов
Проект: root
Этот проект содержит только файлы конфигурации проекта, такие как build.gradle и settings.gradle.
настройки.gradle:
rootProject.name = 'root' includeFlat 'utilities', 'exception-handler', 'discovery-server' includeFlat 'enquiry', 'api-gateway', 'registration'
build.gradle:
buildscript { ext { springBootVersion = '2.1.6.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle- plugin:${springBootVersion}") } } subprojects { apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group = 'com.apandiyan' version = '0.0.1' sourceCompatibility = '1.8' repositories { mavenCentral() } ext { set('springCloudVersion', "Greenwich.SR1") } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud- dependencies:${springCloudVersion}" } } }
Источник: https://github.com/pandiyan90/microservice-blog/tree/master/root
Оригинал: “https://dev.to/pandiyan90/part-1-spring-gradle-multi-module-project-1j8a”