欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

聊聊maven的pom.xml中的exclusions标签的作用

程序员文章站 2022-03-05 16:30:09
maven pom.xml的exclusions标签作用项目中的例子 org.springframework.boot<...

maven pom.xml的exclusions标签作用

项目中的例子

  <dependency>
   <groupid>org.springframework.boot</groupid>
   <artifactid>spring-boot-starter</artifactid>
   <exclusions>
    <exclusion>
     <groupid>org.springframework.boot</groupid>
     <artifactid>spring-boot-starter-logging</artifactid>
    </exclusion>
   </exclusions>
  </dependency>

解释exclusion标签

这个标签的作用是排除关联依赖的引入,因为maven的pom依赖其中有一点是将关联的依赖全都引入进来 ,

这个标签在这的作用就是 如果关联的依赖和引入的其他依赖可能存在冲突,

就必须将关联的依赖排除掉,所以就用这个标签。

另外这个+s的,大家应该也明白 ,就是可以包含多个吗!!!!

用exclusions来进行排除依赖

  • exclusions

但依赖调节并不解决所有问题,我们还需要exclusions来进行排除依赖。

例如这样一个情况,工程中引入了a,a依赖b,但是b的版本过旧。

此时可以使用exclusions排除该传递性依赖,并显示声明一个最新版本的b依赖。

比如这样

<dependency>
    <groupid>com.lowagie</groupid>
    <artifactid>itext</artifactid>
    <version>4.2.1</version>
    <exclusions>
        <exclusion>
            <artifactid>bcmail-jdk14</artifactid>
            <groupid>bouncycastle</groupid>
        </exclusion>
        <exclusion>
            <artifactid>bcprov-jdk14</artifactid>
            <groupid>bouncycastle</groupid>
        </exclusion>
        <exclusion>
            <artifactid>bctsp-jdk14</artifactid>
            <groupid>bouncycastle</groupid>
        </exclusion>
    </exclusions>
</dependency>

在比如若是使用zookeeper发现有log4j的冲突。

我们也可以使用这种方式进行排除

<dependency>
   <groupid>org.apache.zookeeper</groupid>
   <artifactid>zookeeper</artifactid>
   <version>3.5.4-beta</version>
   <exclusions>
    <exclusion>
     <artifactid>slf4j-log4j12</artifactid>
     <groupid>org.slf4j</groupid>
    </exclusion>
   </exclusions>
  </dependency>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。