maven:exclusions 来进行排除依赖

设A依赖B,B依赖C

现在想排除A对C的间接依赖

1:使用<optional>true</optional>不让C传递

    

<dependency>
      <groupId>C</groupId>
      <artifactId>C</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>


 
2:依赖后用<exclusions>排除

  

  <dependency>
      <groupId>B</groupId>
      <artifactId>B</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>C</groupId>
          <artifactId>C</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>


 

公司项目都是<exclusions>把struts排除在外的,所以不需要统计。

进入pom文件所在文件夹输入以下命令查找重复依赖的来源:

mvn dependency:tree

简单地用mvn  dependency:tree往往并不能查看到所有的传递依赖。不过如果你真的想要看所有的,必须得加一个-Dverbose参数,这时就必定是最全的了。
全是全了,但显示出来的东西太多,头晕目眩,有没有好法呢?当然有了,加上Dincludes或者Dexcludes说出你喜欢或讨厌,dependency:tree就会帮你过滤出来:
引用
Dincludes=org.springframework:spring-tx
过滤串使用groupId:artifactId:version的方式进行过滤,可以不写全啦,如:

mvn dependency:tree -Dverbose -Dincludes=asm:asm  

就会出来asm依赖包的分析信息:

[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ ridge-test ---
[INFO] com.ridge:ridge-test:jar:1.0.2-SNAPSHOT
[INFO] +- asm:asm:jar:3.2:compile
[INFO] \- org.unitils:unitils-dbmaintainer:jar:3.3:compile
[INFO]    \- org.hibernate:hibernate:jar:3.2.5.ga:compile
[INFO]       +- cglib:cglib:jar:2.1_3:compile
[INFO]       |  \- (asm:asm:jar:1.5.3:compile - omitted for conflict with 3.2)
[INFO]       \- (asm:asm:jar:1.5.3:compile - omitted for conflict with 3.2)
[INFO] ------------------------------------------------------------------------

对asm有依赖有一个直接的依赖(asm:asm:jar:3.2)还有一个传递进入的依赖(asm:asm:jar:1.5.3)

\表示该层的最后一个依赖
 

参考:https://blog.csdn.net/u010287873/article/details/82012868

           https://blog.csdn.net/baidu_23086307/article/details/80882161

猜你喜欢

转载自blog.csdn.net/weixin_38750084/article/details/88394314
今日推荐