Управление зависимостями загрузки Spring с помощью настраиваемого родителя

1. Обзор

Spring Boot предоставляет родительский POM для упрощения создания приложений Spring Boot.

Однако использование родительского POM не всегда может быть желательным, если у нас уже есть родительский объект для наследования.

В этом кратком руководстве мы рассмотрим, как мы все еще можем использовать Boot без родительского стартера.

2. Spring Boot без родительского POM

Родительский pom.xml заботится о зависимостях и управлении плагинами. По этой причине наследование от него обеспечивает ценную поддержку в приложении, поэтому обычно это предпочтительный способ действий при создании приложения загрузки . Вы можете найти более подробную информацию о том, как создать приложение на основе родительского стартера, в нашей предыдущей статье.

Однако на практике мы можем быть ограничены правилами проектирования или другими предпочтениями, чтобы использовать другого родителя.

К счастью, Spring Boot предлагает альтернативу наследованию от родительского стартера, которая по-прежнему может предоставить нам некоторые из своих преимуществ.

Если мы не используем родительский POM, мы все равно можем извлечь выгоду из управления зависимостями , добавив артефакт spring-boot-dependencies с scope = import :

   org.springframework.boot spring-boot-dependencies 1.5.6.RELEASE pom import   

Затем мы можем начать просто добавлять зависимости Spring и использовать функции Spring Boot :

 org.springframework.boot spring-boot-starter-web 

С другой стороны, без родительского POM мы больше не получаем преимуществ от управления плагинами. Это означает, что нам нужно явно добавить плагин spring -boot-maven-plugin :

   org.springframework.boot spring-boot-maven-plugin   

3. Переопределение версий зависимостей

Если мы хотим использовать другую версию для определенной зависимости, чем та, которая управляется Boot, нам необходимо объявить ее в разделе dependencyManagement до объявления spring-boot-dependencies :

   org.springframework.boot spring-boot-starter-data-jpa 1.5.5.RELEASE   // ... 

Напротив, простое объявление версии для зависимости вне тега dependencyManagement больше не будет работать.

4. Вывод

В этом кратком руководстве мы увидели, как использовать Spring Boot без родительского файла pom.xml.

Исходный код примеров можно найти на GitHub.