http://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html mvn dependency:tree 查看 <dependency> <groupId>groupId_out</groupId> <artifactId>artifactId_out</artifactId> <version>version_out</version> <…
maven-dependency-plugin最大的用途是帮助分析项目依赖,dependency:list能够列出项目最终解析到的依赖列表,dependency:tree能进一步的描绘项目依赖树,dependency:analyze可以告诉你项目依赖潜在的问题,如果你有直接使用到的却未声明的依赖,该目标就会发出警告.maven-dependency-plugin还有很多目标帮助你操作依赖文件,例如dependency:copy-dependencies能将项目依赖从本地Maven仓库复制到某个特…
使用maven 管理项目的依赖,可以使用如下命令查看依赖树结构: mvn dependency:tree 如下图是使用idea的终端执行命令的局部图: 也可以使用如下命令将输出定向到某个文件,这样就可以通过生成的文件来查看: mvn dependency:tree>tree.txt 执行后在项目根目录下有tree.txt文件 使用verbose参数可以看冲突和重复的具体情况: mvn dependency:tree>tree.txt -Dverbose 效果如下图…
Maven对于新手来说是<步步惊心>,因为它包罗万象,博大精深,因为当你初来乍到时,你就像一个进入森林的陌生访客一样迷茫. Maven对于老手来说是<真爱配方>,因为它无所不能,利如刀锋,使用Maven做开发,如饮美酒如悦美人. Maven对于新手来说,最痛苦的一件事莫过于包之间的冲突,由于Maven的依赖传递性,当你引入一个依赖类时,其身后的依赖类也一起如过江之鲫纷至沓来了. 举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M…
一.参考文档 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/…
jar依赖冲突解决实践 前言 随着功能的增多,各种中间件的引入.应用以来的各种jar的规模极具膨胀,出现jar冲突和Class冲突的问题层出不穷,让人不胜其扰.本文针对冲突,提供一个排查和定位问题的最佳实践.实践中尽量不借助第三方工具,而使用maven或者Linux的自带命令行. Maven构建的应用的jar冲突 目前最为最流行的项目构建和管理工具,在目前的互联网应用中被广泛使用.maven框架很大的一个便利就是对于jar的依赖管理,它自然提供了一些工具帮助开发者进行依赖分析.maven存在坐标…
mvn clean compile  //clean告诉Maven清理输出目录target/,compile告诉Maven编译项目主代码. mvn clean test  //清理输出目录target/,然后执行测试 mvn clean package  //清理输出目录target/,然后进行打包 mvn clean install  //将项目输出的jar安装到了Maven的本地仓库中.该命令调用clean生命周期的clean阶段和default生命周期的install阶段.实际执行阶段为c…
一.依赖原则 假设,在 JavaMavenService2 模块中,log4j 的版本是 1.2.7,在 JavaMavenService1 模块中,它虽然继承于 JavaMavenService2 模块,但是它排除了在 JavaMavenService2 模块中继承 1.2.7 的版本,自己引入了1.2.9 的 log4j版本. 此时,相对于 WebMavenDemo 而言,log4j.1.2.7.jar 的依赖路径是 JavaMavenService1 >> JavaMavenServic…
对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn dependency:tree 需要说明的是执行这个命令需要在控制台中进入到pom文件所在的目录. 从上面的图片就可以直观的看到所引用的各个jar包了,而且是以层次结构来进行展示的,非常便于观察.也许有时候你会觉得在控制台看不太方便,或者需要将这些jar包依赖情况导出便于分析问题,这时候怎么办呢?…
1.命令行,但是只能查看一层的引用 mvn dependency:tree 如图所示: 2.使用Eclipse的Dependency Hierarchy查看,这个就比较深层次的查看,如图所示: 3.使用IDEA查看,非常的全,如图所示: 可以看出非常清晰的树状图,比Eclipse清晰.…