Я пытаюсь спроектировать платформу микросервисов, используя Spring Boot и Maven в качестве менеджера зависимостей.
Это архитектура, которую я пытаюсь реализовать:
MainFolder
- core/
- pom.xml
- dep-core/
- pom.xml //core module as parent
- src/main/...
- cfm/
- my-cfm-one/
- pom.xml //core module as parent
- src/main/...
- my-cfm-two/
- pom.xml //core module as parent
- src/main/...
- ...
- pfm/
- my-pfm-one/
- pom.xml //core module as parent and import my-cfm-one as dependency
- src/main/...
- my-pfm-two/
- pom.xml //core module as parent and import my-cfm-two as dependency
- src/main/...
- ...
- ms/
- my-ms-one/
- pom.xml //core module as parent and import my-pfm-one and my-pfm-two as dependencies
- src/main/...
- ...
Моя проблема связана с модулем dep-core.Когда я устанавливаю ядро модуля в качестве родителя для одного cfm, я не могу получить доступ к классам, определенным в модуле dep-core (который импортируется в модуль core (parent))
Это pom модуля ядра(Я опускаю некоторые части для сокращения)
...
<groupId>it.test</groupId>
<artifactId>core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>core</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
...
</properties>
<modules>
<module>dep-core</module>
</modules>
<!-- I also tried ( with and without <module> tag )
<dependencies>
<dependency>
<groupId>it.test</groupId>
<artifactId>dep-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
-->
</project>
Это pom модуля dep-core
...
<groupId>it.test</groupId>
<artifactId>dep-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>dep-core</name>
<parent>
<groupId>it.test</groupId>
<artifactId>core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
...
</dependencies>
<dependencyManagement>
...
</dependencyManagement>
<repositories>
...
</repositories>
</project>
И это pom одного модуля cfm
<groupId>it.test</groupId>
<artifactId>search-cfm</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>search-cfm</name>
<parent>
<groupId>it.test</groupId>
<artifactId>core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath/>
</parent>
<dependencies>
<!--SPRING DEP-->
</dependencies>
</project>
Может кто-нибудь дать мне правильный способ спроектировать мою архитектуру и решить мою проблему?
Я также добавил пример проекта в github, чтобы увидеть проблему.
https://github.com/jayturchi/test-maven-architecture