maven依赖 exclusion 和 optional

如果项目A依赖项目B,项目X依赖项目A,则根据依赖传递的原则,项目X会依赖项目B。如果项目X不需要依赖项目B呢?
optional 可选依赖,用在项目A的maven配置中。

<dependency>
    <groupId>ProjectB</groupId>
    <artifactId>Project-B</artifactId>
    <optional>true</optional>
    <version>...</version>
</dependency>

如果项目A只依赖了项目B的小部分功能,而且依赖项目A的项目都不需要依赖项目B,则用optional,此时,依赖项目A的任一个项目X,不会依赖项目B。如果X想要依赖B,需要在X的maven中重新配置依赖B

exclusion 依赖排除,用在项目X的maven配置中。

<dependency>
    <groupId>ProjectA</groupId>
    <artifactId>Project-A</artifactId>
    <version>...</version>
    <exclusions>
        <exclusion>
            <groupId>ProjectB</groupId>
            <artifactId>Project-B</artifactId>
        </exclusion>
    </exclusions>
</dependency>

此时,其他依赖项目A的项目Y,依旧会依赖B,但是只是X不再依赖项目B。

=======================分界线=======================
(简单来说,exclusion是在女儿那里排除了跟姥姥的关系,妈妈的其她女儿,还是认这个姥姥的。optional是在妈妈那里排除了女儿跟姥姥的关系,妈妈的所有女儿和新出生的女儿,都跟姥姥没关系了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值