首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >子poms可以继承父pom中定义的依赖项排除吗?

子poms可以继承父pom中定义的依赖项排除吗?
EN

Stack Overflow用户
提问于 2016-10-03 15:39:42
回答 1查看 2.9K关注 0票数 5

我不确定这是否是Maven的支持。我很感激我能得到的任何帮助。

我有一个父pom,它定义了依赖项和排除项。我不能改变父母的观点:

代码语言:javascript
运行
复制
<dependency>
    <groupId>foo</groupId>
    <artifactId>bar</artifactId>
    <version>1.0</version>
    <exclusions>
        <!-- this exclusion needs to be inherited by all children -->
        <exclusion>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </exclusion>
    </exclusions>
</dependency>

然后,在子pom中,我需要从父级的相同依赖项中排除一个不同的依赖项。就像这样

代码语言:javascript
运行
复制
<dependency>
    <groupId>foo</groupId>
    <artifactId>bar</artifactId>
    <version>1.0</version>
    <exclusions>
        <!-- this exclusion is just for the child -->
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>

但是,如果我这样做,子slf4j jar将被排除在外(正确),但是它不会排除server,除非我在该依赖项的子声明中重新声明父排除。

我意识到我可以复制它,但这是混乱的,我意识到把孩子的排斥推到父母身上是很容易的,但是我会把这种排斥强加给所有其他孩子。

我希望Maven在父级和子级中声明相同的依赖项时合并依赖项排除信息。

这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2016-10-17 05:59:13

在你父母的pom中:

代码语言:javascript
运行
复制
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>foo</groupId>
            <artifactId>bar</artifactId>
            <version>1.0</version>
            <exclusions>
                <!-- this exclusion needs to be inherited by all children -->
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-config-server</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</dependencyManagement>

在你的孩子身上:

代码语言:javascript
运行
复制
<dependencies>
    <dependency>
        <groupId>foo</groupId>
        <artifactId>bar</artifactId>
        <exclusions>
            <!-- this exclusion is just for the child -->
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39835372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档