Проблема со структурой проекта.Поскольку родительский артефакт вашего родительского реактора -
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
, все артефакты, включая артефакт модуля data
, будут выполнять выполнение этого плагина:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>${start-class}</mainClass>
</configuration>
</plugin>
Модуль data
не долженбыть переупакованным в толстую банку, так как вы не хотите выполнять его как приложение Spring BootВы хотите использовать его как артефакт зависимости.
Не используйте spring-boot-starter-parent
как родительский объект реактора!Вместо этого импортируйте спецификацию Spring Boot в dependencyManagement
вашего родителя (больше здесь ):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Добавьте это к pluginManagement
:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.0.RELEASE</version>
</plugin>
* 1021 родителя* Переместите вызов
spring-boot-maven-plugin
из вашего родителя в модуль
web
, чтобы только
web
был переупакован,
data
не будет.
Наконец, вызовите mvn clean install
из родительского каталога.install
требуется для работы реактора, поскольку артефакт зависимости (data-0.0.1-SNAPSHOT.jar
) должен быть скопирован в локальный репозиторий Maven (обычно ~/.m2/repositories/...
), прежде чем его можно будет использовать в качестве зависимости модулем web
.