文章目录

  • 一.参考文档
  • 二.查看jar包的间接依赖
    • 1.如果发现某个jar包,自己的pom中并没有定义,想看一下是被哪个jar包间接引用的,两种方法
      • (1)用mvn dependency:tree>d:\\tree.txt,直接输出到当前D盘下,然后打开,搜索要找的jar包名字即可.
      • (2)用include参数
    • 2.如果想看冲突和重复的具体情况,用verbose参数
  • 三.处理jar包依赖冲突

一.参考文档

https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html

https://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html

https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html

二.查看jar包的间接依赖

1.如果发现某个jar包,自己的pom中并没有定义,想看一下是被哪个jar包间接引用的,两种方法

(1)用mvn dependency:tree>d:\tree.txt,直接输出到当前D盘下,然后打开,搜索要找的jar包名字即可.

这里的 “±” 和"-"并没有什么意义,只是为了让分级看起来更直观

参考:https://stackoverflow.com/questions/34006740/what-is-the-difference-between-and-in-maven-dependency-tree-output

如图,可看到jline是在zookeeper中被间接引用的

(2)用include参数

H:\下载\新建文件夹\yjg>mvn dependency:tree -Dincludes=jline
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effe
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.pl
[WARNING]
[WARNING] It is highly recommended to fix these problems because
[WARNING]
[WARNING] For this reason, future Maven versions might no longer
[WARNING]
[INFO]
[INFO] ---------------------------------------------------------
[INFO] Building esshop Maven Webapp 0.0.1-SNAPSHOT
[INFO] ---------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ essh
[INFO] esshop:esshop:war:0.0.1-SNAPSHOT
[INFO] \- org.apache.zookeeper:zookeeper:jar:3.3.3:compile
[INFO]    \- jline:jline:jar:0.9.94:compile
[INFO] ---------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ---------------------------------------------------------
[INFO] Total time: 3.256 s
[INFO] Finished at: 2017-12-05T08:57:49+08:00

同样的结果

2.如果想看冲突和重复的具体情况,用verbose参数

如图,用了程序显式定义的版本

H:\下载\新建文件夹\yjg>mvn dependency:tree -Dverbose -Dincludes=commons-collections
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for esshop:esshop:war:0.0.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 621,
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building esshop Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ esshop ---
[INFO] esshop:esshop:war:0.0.1-SNAPSHOT
[INFO] +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] +- org.hibernate:hibernate:jar:3.2.2.ga:compile
[INFO] |  \- (commons-collections:commons-collections:jar:2.1.1:compile - omitted for conflict with 3.2.1)
[INFO] +- org.hibernate:hibernate-annotations:jar:3.4.0.GA:compile
[INFO] |  \- org.hibernate:hibernate-core:jar:3.3.0.SP1:compile
[INFO] |     \- (commons-collections:commons-collections:jar:3.1:compile - omitted for conflict with 3.2.1)
[INFO] +- org.springframework.security:spring-security-core:jar:2.0.4:compile
[INFO] |  \- (commons-collections:commons-collections:jar:3.2:compile - omitted for conflict with 3.2.1)
[INFO] +- org.apache.velocity:velocity:jar:1.5:compile
[INFO] |  \- (commons-collections:commons-collections:jar:3.1:compile - omitted for conflict with 3.2.1)
[INFO] \- net.sf.json-lib:json-lib:jar:jdk15:2.4:compile
[INFO]    \- (commons-collections:commons-collections:jar:3.2.1:compile - omitted for duplicate)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

三.处理jar包依赖冲突

简介:处理jar包依赖冲突,首先,对于多个jar包都引用同一jar包的情况,最好是在程序中显式定义被共同引用的jar包的依赖,来统一版本号,方便维护

如果A和B都依赖同一jar包C,可能会出现两种情况

1.A和B引用的C版本相同,这时按照pom定义顺序选择第一个即可,没有冲突问题,如果在项目的maven中显示定义了C依赖,那么用选择项目定义的依赖,反正version都一样,没有影响

2.A和B依赖的C版本不同,选择版本高的那个,这时会出现两种结果

(1) 高版本兼容低版本,所以不会出现问题

(2)高版本不兼容低版本,假如A依赖C2版本,B依赖C3版本,C3不兼容C2,maven选择了高版本C3,对A来说会出现问题

有3种解决方法

[1]提升A版本,找到依赖C3的A版本

[2]如果B版本也可依赖C2,在项目的maven中显示定义对C2的依赖,这样所有都使用C2版本

[3]如果B版本不支持C2版本,只能降低B版本,找到依赖C2的B版本

从功能性和可维护性考虑,高版本提供的功能更多,bug更少,优先考虑1

再考虑2

最后考虑3

mvn dependency:tree查看jar包间接依赖相关推荐

  1. 通过mvn dependency:tree 查看依赖树,解决依赖jar冲突问题

    举例: E:\01workspace\chenxh\09research\rop\rop>mvn dependency:tree  [WARNING]  [WARNING] Some probl ...

  2. Maven查看JAR包的依赖关系

    1.在eclipse中操作,打开pom.xml文件,如下图所示:

  3. [转载] Maven类包冲突终极三大解决技巧 mvn dependency:tree

    举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖). ...

  4. MAVEN查看jar包依赖关系

    MAVEN查看jar包依赖关系 进入project的pom.xml所在目录,运行mvn dependency:tree即可 Microsoft Windows [版本 10.0.18362.535] ...

  5. andriod studio 查看项目依赖_Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图...

    Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项 ...

  6. maven查看jar包对应的依赖

    例如:json-smart-2.4.8.jar 打开Terminal,输入命令: mvn dependency:tree 运行完之后直接ctrl+F进行搜索 在最上面的就是对应的依赖.可全局搜索进行查 ...

  7. Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图

    IntelliJ IDEA使用教程 (总目录篇) Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Pr ...

  8. Maven Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图

    原文地址: https://blog.csdn.net/qq_27093465/article/details/69226949 IntelliJ IDEA使用教程 (总目录篇) Maven 组件界面 ...

  9. 【转载】在IDEA 中使用 mvn install 添加本地 jar包依赖

    背景 maven因为其使用带来的便利使得现在很多项目都在使用maven进行辅助开发,但有的时候也会有一些稍微麻烦一点的事可能会需要绕点弯路,今天在使用idea为ide工具编写maven项目的过程中,我 ...

最新文章

  1. 算法导论一个让人很不爽的地方
  2. IOS本地日志记录解决方案
  3. MyBatis(1):MyBatis入门
  4. 中国工程师最喜欢的10大WiFi物联网芯片
  5. Linux--用SecureCRT来上传和下载文件
  6. ds18b20c语言显示小数位,DS18B20多点测温(读序列,匹配序列,51单片机C程序,1602显示)...
  7. 无符号数和有符号数之间赋值和大小比较
  8. 美女DBA带你了解PostgreSQL用户及角色
  9. Oracle中的函数(持续更新)
  10. 1.7 LINUX启动流程
  11. iphone 制作在线播放器
  12. idea导入一个工程后只显示pom文件_P1搭建第一个springboot应用
  13. 烂泥:nagios监控单网卡双IP
  14. Mujoco不错的视频教程
  15. 知识点滴 - 关于苹果认证MFI
  16. 21-Chrome开发者工具:利用网络面板做性能分析
  17. 小驼峰法和大驼峰法的区别
  18. 关于Mysql出现1045错误的方法
  19. 数字抽奖小程序_发挥想象力,用 PowerBI 做抽奖小程序
  20. 主流链分片技术和共识算法

热门文章

  1. 深圳的格局 自我的方向
  2. 利用mesh ble_mesh_provisioner和 onoff_server建立网络传输温湿度以及pm2.5等数据
  3. centos怎么查看端口是否开放
  4. 修复Patran Skin GUI无法启动的问题
  5. DELL R7525服务器安装ESXI7.0
  6. Windows-Word显示目录
  7. SpringMvc 中函数的返回值是什么?
  8. 静态编译与动态编译的区别以及为什么需要静态编译
  9. 共享打印机修改服务器,Windows在使用端(工作站)更改自定义共享打印机的名字个性化的修改方法...
  10. 左手 右手(5-8)