并不是每个人都喜欢继承spring-boot-starter-parent
的POM。您可能需要使用自己公司标准的POM,或者您可能只是希望显式声明所有的Maven配置。
如果您不想使用spring-boot-starter-parent
,您仍然可以通过使用scope=import
依赖来继续享有依赖管理(但不是插件管理)的好处:
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.7.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
该设置不允许您使用上述的属性来覆盖单个依赖。要实现那样的结果,您需要在项目的dependencyManagement
中添加一项,该项位于spring-boot-dependencies
之前。例如,要升级另一个Spring Data版本序列,您需要将如下内容添加到pom.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.5.7.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在上面的例子中我们指定了POM,其实任何依赖类型都可以以同样方式覆盖。