maven冲突解决

作者: _li_ | 来源:发表于2016-10-25 21:26 被阅读3619次

主要目的是升级现有的jar包,排除传递依赖引起的冲突

maven 命令

mvn dependency tree

mvn dependency:tree命令可以查看当前项目的依赖关系。可以将当前POM的依赖关系按照树形结构展开。

[INFO] +- org.springframework:spring-context:jar:4.2.8.RELEASE:compile
[INFO] |  +- org.springframework:spring-aop:jar:4.2.8.RELEASE:compile
[INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.springframework:spring-beans:jar:4.2.8.RELEASE:compile
[INFO] |  \- org.springframework:spring-expression:jar:4.2.8.RELEASE:compile
...

上述树形结构里,\-表示当前父节点最后的子节点。

–Dverbose

加上这个参数,可以将当前所有的依赖关系都展示出来,包括来自不同处的依赖项。

[INFO] +- org.springframework:spring-context-support:jar:4.2.8.RELEASE:compile
[INFO] |  +- (org.springframework:spring-beans:jar:4.2.8.RELEASE:compile - omitted for duplicate)
[INFO] |  +- (org.springframework:spring-context:jar:4.1.1.RELEASE:compile - version managed from 4.2.8.RELEASE; omitted for conflict with 4.2.8.RELEASE)
[INFO] |  \- (org.springframework:spring-core:jar:4.1.1.RELEASE:compile - version managed from 4.2.8.RELEASE; omitted for conflict with 4.2.8.RELEASE)
...

–Dincludes

-Dincludes 可以进行参数过滤,如果需要查询spring相关的依赖,可以
mvn dependency:tree -Dverbose -Dincludes=*spring*:*spring*

[INFO] +- org.springframework:spring-context:jar:4.2.8.RELEASE:compile
[INFO] |  +- org.springframework:spring-aop:jar:4.2.8.RELEASE:compile
[INFO] |  |  +- (org.springframework:spring-beans:jar:4.2.8.RELEASE:compile - omitted for duplicate)
[INFO] |  |  \- (org.springframework:spring-core:jar:4.1.1.RELEASE:compile - version managed from 4.2.8.RELEASE; omitted for duplicate)
[INFO] |  +- org.springframework:spring-beans:jar:4.2.8.RELEASE:compile
[INFO] |  |  \- (org.springframework:spring-core:jar:4.1.1.RELEASE:compile - version managed from 4.2.8.RELEASE; omitted for duplicate)
...

当然,可以将输出结果导入到文本中。只需要在命令后加入”>a.txt”即可。

mvn help:effective-pom

上述命令可以将当前项目自己的POM已经从父类中继承的POM内容输出,可以输出到文本中。
mvn help:effective-pom>a.txt

mvn dependency:analyze

dependency:analyze是通过分析bytecode来输出报告。包含Used undeclared dependencies(使用但未定义的依赖项)和Unused declared dependencies(未使用但却定义的依赖项)。

  • Used undeclared dependencies
    该列表列出的是程序代码直接用到的、但并没在pom.xml里定义的依赖项。
  • Unused declared dependencies
    该列表列出的是程序代码没用到的、但在pom.xml里定义的依赖项。注意,该列表可能不准确,因为程序代码可能使用了反射技术,在运行时需要这些jar包存在。

排除依赖

dependency

在dependency中,可以通过exclusions标签进行依赖排除。
例如,排除spring

<exclusions>
   <exclusion>
      <groupId>org.springframework</groupId>
      <artifactId>spring</artifactId>
   </exclusion>
</exclusions>

排除所有

<exclusions>
   <exclusion>
      <groupId>*</groupId>
      <artifactId>*</artifactId>
   </exclusion>
</exclusions>

相关文章

  • 如何解决maven冲突?

    如何解决maven冲突 maven冲突分两类:显示冲突和隐式冲突。 显示冲突:maven文件中直接以

  • 解决maven冲突

    如果部署后发现jetty启动失败,而且通过error日志观察到系统出现了NoSuchMethodError 很有可...

  • maven冲突解决

    主要目的是升级现有的jar包,排除传递依赖引起的冲突 maven 命令 mvn dependency tree m...

  • POM文件

    解决依赖冲突 引用变量的三种情况(maven命令) 多环境属性过滤 各种依赖(POM文件详解) 解决maven传递...

  • Idea中常用的插件

    Maven Helper解决的是Maven依赖的冲突问题 FindBugs初步排查代码中的Bug ECTransa...

  • guava版本冲突解决办法--maven项目

    maven项目解决jar包冲突的四种方式 guava版本冲突解决办法 ------场景:grpc-all 和 es...

  • 依赖冲突解决办法

    依赖冲突解决办法 maven 的价值 Java开发中,jar的管理由maven来管。maven做的事情: jar统...

  • Maven依赖冲突解决

    背景 在部署一个spring-boot项目到远程测试机上的tomcat之后,发现tomcat并没有启动起来,让我折...

  • maven依赖冲突解决

    一、maven自己调节原则1.第一申明优先原则.谁先依赖就导入谁的jar包2.路径近者优先原则直接依赖比传递依赖大...

  • Maven解决依赖冲突

    maven依赖冲突以及解决方法 什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类...

网友评论

  • 84e66dc4384b:排除所有用*号,我试了下,为什么不行啊

本文标题:maven冲突解决

本文链接:https://www.haomeiwen.com/subject/wdxduttx.html