Spring Boot Dependency Management с настраиваемым родителем

Spring Boot Dependency Management с настраиваемым родителем

1. обзор

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

Однакоusing the parent POM may not always be desirable, if we already have a parent to inherit from.

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

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

The parent pom.xml takes care of dependency and plugin management. По этой причине наследование от него обеспечивает ценную поддержку в приложении, поэтому обычно это предпочтительный курс действий при создании приложенияBoot. Вы можете найти более подробную информацию о том, как создать приложение на основе родительского стартера, вour previous article.

Однако на практикеwe may be constrained by design rules or other preferences to use a different parent.

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

If we don’t make use of the parent POM, we can still benefit from dependency management, добавив артефакт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

On the other hand, without the parent POM, we no longer benefit from plugin management. Это означает, что нам нужно явно добавить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..

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