当从BOM导入工件版本时,如何在超级POM中声明工件的排除

时间:2015-09-10 10:19:28

标签: maven

我正在使用BOM来声明项目中常见工件的版本。

我在具有多个子模块的项目中导入超级POM的dependencyManagement部分中的BOM,如下所示:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>mygroup</groupId>
            <artifactId>mybom</artifactId>
            <version>bomversion</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        ...
    </dependencies>
</dependencyManagement>

目标是这个超级POM的孩子不必声明他们需要的模块版本。这很好。

但是,我还希望能够在我的超级pom中指定某些依赖项应该使用排除项导入,例如:

<dependencyManagement>
    <dependencies>

        <dependency>
            <groupId>artefactgroup</groupId>
            <artifactId>myartifact</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        ...
    </dependencies>
</dependencyManagement>

问题在于,myartifact中导入的BOM无法识别版本。这是预期的行为吗?

哪种方法可以在我的超级POM中声明排除项,以便从BOM中获取版本?

如果我没有在超级POM中声明排除,但是在每个需要myartifact的子项中它都有效,但是在我的项目中,相同的排除声明遍布各处,这远非一个好主意。 / p>

0 个答案:

没有答案