导入依赖管理与排除

时间:2016-09-01 15:53:22

标签: maven

我的dependencyManagement部分有很多依赖项的漂亮BOM,我想创建另一个BOM ,导入所有依赖项除了一个。我试过这样做:

... in my dependencyManagement section
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>${spring-boot-version}</version>
    <type>pom</type>
    <scope>import</scope>

    <exclusions>
        <exclusion>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        </exclusion>
    </exclusions>
</dependency>
...

POM正式正确,一切都在编译。 但排除被忽略了。我错过了什么?这种方法是否正确?

我正在使用Maven 3 +。

2 个答案:

答案 0 :(得分:3)

导入时的排除无效,请尝试将其从依赖项的实际用户中排除

答案 1 :(得分:2)

从当前的maven 3.6.3开始,仍然没有为dependencyManagement实现排除项。但是,您可以将特定于项目的“物料清单”(BOM)作为dependencyManagement部分中的第一个依赖项,即

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>my-group</groupId>
            <artifactId>my-group-project-bom</artifactId>
            <version>${project.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <type>pom</type>
            <version>${spring-boot.version}</version>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

然后您可以在项目BOM中指定所有必需的工件版本,这些版本将优先于spring-boot依赖版本。