Spring проект на микросервисах запутался с зависимостями
Пытаюсь создать тестовый проект на микросервисах. За основу брал другой проект. Вот структура проекта:
octory
--common
--proxy-service
--content
В корне проекта создал основной pom.xml
<groupId>ru.octory.marketplace</groupId>
<artifactId>octory</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.12</version>
<relativePath/>
</parent>
<modules>
<module>content</module>
<module>common</module>
<module>proxy-service</module>
</modules>
pom.xml модуля common
<parent>
<artifactId>octory</artifactId>
<groupId>ru.octory.marketplace</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>common</artifactId>
<version>1.0-SNAPSHOT</version>
<name>common</name>
<description>Common MicroService</description>
<properties>
<java.version>14</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
pom.xml модуля proxy-service
<parent>
<artifactId>octory</artifactId>
<groupId>ru.octory.marketplace</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>proxy-service</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>proxy-service</name>
<description>Proxy-service MicroService</description>
<properties>
<java.version>14</java.version>
<openapi.version>1.5.4</openapi.version>
<common.version>1.0-SNAPSHOT</common.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ru.octory.marketplace</groupId>
<artifactId>common</artifactId>
<version>${common.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.4.2</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>proxy</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
Модуль common собрался без ошибок. А вот когда запускаю mvn clean install в модуле proxy-service, вылетает ошибка:
[ERROR] Failed to execute goal on project proxy-service: Could not resolve dependencies for project ru.octory.marketplace:proxy-service:jar:1.0-SNAPSHOT: Failed to collect dependencies at ru.octory.marketplace:common:jar:1.0-SNAPSHO
T: Failed to read artifact descriptor for ru.octory.marketplace:common:jar:1.0-SNAPSHOT: Could not find artifact ru.octory.marketplace:octory:pom:1.0-SNAPSHOT
Я первый раз пробую создать проект на микросервисах и совсем запутался в зависимостях. Что я сделал не так?
Ответы (2 шт):
Помогло удаление папки с локальными репозиториями /home/<User_Name>/.m2 Только после этого ошибка ушла.
Эта ошибка скорее всего значит что у вас в дереве проекта этот артефакт два раза присутствует. Вероятно maven загружает зависимость из своих репозиториев, следуя иснтрукции dependency (или уже там есть собранный сложенный артефакт), и еще ваш модуль собирается -что дублирует артефакт. попробуйте удалить папку с локальными репозиториями /home/<User_Name>/.m2 и заново собрать – Mira