如何使用DependencyManagement删除Spring Boot依赖项?

时间:2019-01-14 11:40:03

标签: maven spring-boot

在我的pom文件中,我有以下内容:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

之所以使用它,是因为该项目已经有一个父pom。

我想删除其某些依赖项,例如:

  <dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>6.4.3</version>
  </dependency>

我该怎么做?

1 个答案:

答案 0 :(得分:3)

spring-boot-dependencies不添加任何依赖关系。它主要由一个巨大的<dependencyManagement>块组成,其中包含多个库的托管版本。这样,您就可以使用已知版本的库,这些库可以与给定版本的Spring boot正常工作。

这意味着您不再需要向定义的每个依赖项中添加<version>

这还意味着,如果您对elasticsearch有依赖性,那么肯定不是来自spring-boot-dependencies

如果您的目标是覆盖其中一个版本,则可以通过将<version>手动添加到依赖项中来实现。

否则,通常可以使用<exclusions>排除依赖项:

 <dependency>
     <groupId>com.xyz</groupId>
     <artifactId>artifact-abc</artifactId>
     <exclusions>
         <exclusion>
             <groupId>org.elasticsearch</groupId>
             <artifactId>elasticsearch</artifactId>
         </exclusion>
     </exclusions>
</dependency>