1. Обзор
Spring Boot
предоставляет родительский POM для упрощения создания приложений Spring Boot.
Однако использование родительского POM не всегда может быть желательным, если у нас уже есть родитель для наследования.
В этом кратком руководстве мы рассмотрим, как мы можем использовать Boot без родительского стартера.
2. Spring Boot
без родительского POM
Родительский pom.xml
заботится об управлении зависимостями и плагинами. По этой причине наследование от него обеспечивает ценную поддержку в приложении, поэтому обычно это предпочтительный способ действий при создании загрузочного
приложения. Подробнее о том, как собрать приложение на основе родительского стартера, вы можете узнать в нашей предыдущей статье .
Однако на практике мы можем быть ограничены правилами проектирования или другими предпочтениями в использовании другого родителя.
К счастью, Spring Boot
предлагает альтернативу наследованию от родительского стартера, которая по-прежнему может предоставить нам некоторые из своих преимуществ.
Если мы не используем родительский POM, мы все равно можем извлечь выгоду из управления зависимостями , добавив артефакт spring-boot-dependencies с
scope=import
:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Затем мы можем начать просто добавлять зависимости Spring и использовать функции Spring Boot
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
С другой стороны, без родительского POM мы больше не можем пользоваться преимуществами управления плагинами. Это означает, что нам нужно явно добавить плагин spring-boot-maven :
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3. Переопределение версий зависимостей
Если мы хотим использовать другую версию для определенной зависимости, чем та, которой управляет Boot, нам нужно объявить ее в разделе dependencyManagement
до того, как будет объявлено spring-boot-dependencies
:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.4.0</version>
</dependency>
</dependencies>
// ...
</dependencyManagement>
Напротив, простое объявление версии зависимости вне тега dependencyManagement
больше не будет работать.
4. Вывод
В этом кратком руководстве мы увидели, как мы можем использовать Spring Boot
без родительского файла pom.xml.
Исходный код примеров можно найти на GitHub .