当使用使用SpringBoot时,要继承SpringBoot的POM的原因

来源:互联网 发布:飞利浦剃须刀 知乎 编辑:程序博客网 时间:2024/06/14 08:51

from:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.html

Maven users can inherit from the spring-boot-starter-parent project to obtain sensibledefaults. The parent project provides the following features:

  • Java 1.6 as the default compiler level.
  • UTF-8 source encoding.
  • A Dependency Management section, allowing you toomit <version> tags for common dependencies, inherited from thespring-boot-dependencies POM.
  • Sensible resource filtering.
  • Sensible plugin configuration (exec plugin,surefire,Git commit ID,shade).
  • Sensible resource filtering for application.properties andapplication.yml

On the last point: since the default config files acceptSpring style placeholders (${…​}) the Maven filtering is changed touse@..@ placeholders (you can override that with a Maven propertyresource.delimiter).

你如果已经继承了你自己定义的POM,你可以用依赖来引用它,如下:

Not everyone likes inheriting from the spring-boot-starter-parent POM. You may have yourown corporate standard parent that you need to use, or you may just prefer to explicitlydeclare all your Maven configuration.

If you don’t want to use the spring-boot-starter-parent, you can still keep the benefitof the dependency management (but not the plugin management) by using ascope=importdependency:

<dependencyManagement>     <dependencies>        <dependency>            <!-- Import dependency management from Spring Boot -->            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-dependencies</artifactId>            <version>1.3.4.RELEASE</version>            <type>pom</type>            <scope>import</scope>        </dependency>    </dependencies></dependencyManagement>

That setup does not allow you to override individual dependencies using a property asexplained above. To achieve the same result, you’d need to add an entry in thedependencyManagement of your projectbefore the spring-boot-dependenciesentry. For instance, to upgrade to another Spring Data release train you’d add thefollowing to yourpom.xml.

<dependencyManagement>    <dependencies>        <!-- Override Spring Data release train provided by Spring Boot -->        <dependency>            <groupId>org.springframework.data</groupId>            <artifactId>spring-data-releasetrain</artifactId>            <version>Fowler-SR2</version>            <scope>import</scope>            <type>pom</type>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-dependencies</artifactId>            <version>1.3.4.RELEASE</version>            <type>pom</type>            <scope>import</scope>        </dependency>    </dependencies></dependencyManagement>

0 0
原创粉丝点击