O pai inicial do Spring Boot
1. Introdução
Neste tutorial, aprenderemos sobrespring-boot-starter-parent e como podemos nos beneficiar dele para melhor gerenciamento de dependências, configurações padrão para plug-ins e construir rapidamente nossos aplicativosSpring Boot.
Também veremos como podemos substituir as versões de dependências e propriedades existentes fornecidas porstarter-parent.
2. Pai do iniciador de inicialização por mola
O projetospring-boot-starter-parent é um projeto inicial especial - que fornece configurações padrão para nosso aplicativo e uma árvore de dependência completa para construir rapidamente nosso projetoSpring Boot.
Ele também fornece configuração padrão para plug-ins Maven comomaven-failsafe-plugin,maven-jar-plugin,maven-surefire-plugin,maven-war-plugin.
Além disso, ele também herda o gerenciamento de dependência despring-boot-dependencies, que é o pai de spring-boot-starter-parent.
Podemos começar a usá-lo em nosso projeto adicionando isso como um pai empom.xml do nosso projeto:
org.springframework.boot
spring-boot-starter-parent
2.1.5.RELEASE
Sempre podemos obter a versão mais recente despring-boot-starter-parent no Maven Central.
3. Gerenciando dependências
Depois de declarar o pai inicial em nosso projeto, podemos extrair qualquer dependência do pai apenas declarando-a em nossa tagdependencies.
Além disso, não precisamos definir as versões das dependências, o Maven baixará os arquivos jar com base na versão definida para o pai inicial na tag pai.
Por exemplo, se estamos construindo um projeto da web, podemos adicionarspring-boot-starter-web diretamente, e não precisamos especificar a versão:
org.springframework.boot
spring-boot-starter-web
4. A etiqueta de gerenciamento de dependências
Para gerenciar uma versão diferente de uma dependência fornecida pelo pai inicial, podemos declarar a dependência e sua versão explicitamente na seçãodependencyManagement:
org.springframework.boot
spring-boot-starter-data-jpa
2.1.1.RELEASE
5. Propriedades
Para alterar o valor de qualquer propriedade definida no pai inicial, podemos declará-lo novamente em nossa seção de propriedades.
Ospring-boot-starter-parent por meio de seu paispring-boot-dependencies usa propriedades para configurar todas as versões de dependências, versão Java e versões de plug-in Maven.
Portanto, facilita o controle dessas configurações, apenas alterando a propriedade correspondente.
Se quisermos alterar a versão de qualquer dependência que desejamos extrair do pai inicial, podemos adicionar a dependência na tag de dependência e configurar diretamente sua propriedade:
4.11
6. Outras substituições de propriedades
Também podemos usar propriedades para outras configurações, como gerenciar versões de plug-ins ou até mesmo algumas configurações básicas, como gerenciar a versão Java, codificação de origem.
Só precisamos declarar novamente a propriedade com um novo valor.
Por exemplo, para alterar a versão do Java podemos indicá-la na propriedadejava.version:
1.8
7. Projeto de inicialização por mola sem pai inicial
Às vezes, temos um pai Maven personalizado. Ou, podemos preferir declarar todas as nossas configurações do Maven manualmente.
Nesse caso, podemos optar por não usar o projetospring-boot-starter-parent. Mas, ainda podemos nos beneficiar de sua árvore de dependências adicionando uma dependênciaspring-boot-dependencies em nosso projeto no escopoimport.
Vamos explicar isso com um exemplo simples no qual queremos usar outro pai que não seja o pai inicial:
com.example
spring-boot-parent
1.0.0-SNAPSHOT
Aqui, usamosparent-modules a projeto diferente como nossa dependência pai.
Agora, neste caso, ainda podemos obter os mesmos benefícios do gerenciamento de dependência adicionando-o no escopoimporte tipopom:
org.springframework.boot
spring-boot-dependencies
2.1.1.RELEASE
pom
import
Além disso, podemos obter qualquer dependência apenas declarando-a emdependencies como fizemos em nossos exemplos anteriores. Nenhum número de versão é necessário para essas dependências.
8. Sumário
Neste tutorial, demos uma visão geral despring-boot-starter-parente o benefício de adicioná-lo como pai em qualquer projeto filho.
Em seguida, aprendemos a gerenciar dependências. Podemos substituir dependências emdependencyManagement ou por meio de propriedades.
O código-fonte dos fragmentos usados neste tutorial está disponível emGithub, um usando o pai inicial e o outro um pai personalizado.