maven依赖包冲突解决思路

1、显示依赖关系
mvn dependency:tree > tree.txt
显示所有依赖关系,并输出到text.txt
mvn dependency:tree -Dverbose > tree.txt
显示指定包的依赖关系
mvn dependency:tree -Dverbose -Dincludes=net.masterthought:maven-cucumber-reporting:jar:3.13.1
mvn dependency:tree -Dverbose -Dincludes=org.springframework:spring-context-support

2、maven包冲突
maven采用“最近获胜策略(nearest wins strategy)”的方式处理依赖冲突,即如果一个项目最终依赖于相同artifact的多个版本,在依赖树中离项目最近的那个版本将被使用。
解决方法一:
当冲突时把需要依赖的包重新定义在最外层依赖关系中,即在pom.xml文件中直接加上依赖。

解决方法二:
在resolve-web项目对project-A的dependency声明中,将project-common排除掉。在resolve-web的pom.xml文件中修改对project-A的dependency声明:

<dependency>
<groupId>project-A</groupId>
<artifactId>project-A</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<groupId>project-common</groupId>
<artifactId>project-commmon</artifactId>
</exclusion>
</exclusions>
</dependency>

原文地址:https://www.cnblogs.com/gongxr/p/8241327.html

时间: 2024-10-13 13:34:34

maven依赖包冲突解决思路的相关文章

maven依赖包冲突解决办法

今天在写一个demo时报了以下错误 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/chengxu/mavenRepository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding

Maven jar包冲突解决办法

下面两个配置有简洁的包依赖冲突: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId

Maven依赖版本冲突的分析及解决小结

1:前言 做软件开发这几年遇到了许多的问题,也总结了一些问题的解决之道,之后慢慢的再遇到的都是一些重复性的问题了,当然,还有一些自己没有完全弄明白的问题.如果做的事情是重复的,遇到重复性问题的概率也就会比较多了,如果是在一个新的领域里玩,遇到的问题又都是新的,自己从来没有见过的,但是问题的解决思路基本是类似的.下面这个问题,我觉得值得一记,因为以后还会再遇到类似的,我希望自己能很快的将其解决掉. 2:报错信息 如下是更新项目后,启动项目时抛出的部分错误信息. 十二月 14, 2016 7:52:

maven依赖包下载失败解决办法

原文:http://www    .zuidaima.com/question/2535347150441472.htm maven依赖包下载失败 比如:Missing artifact org.codehaus.jackson:jackson-mapper-asl:jar:1.9.9 这种问题即使使用Project=>Clean来重新Buil项目都不行,因为这个操作是属于项目重新编译,而该问题是依赖包问题,所以只有在依赖包正常的情况下操作才会成功,解决办法就是maven clean 操作步骤如

导入spark程序的maven依赖包时,无法导入,报错Unable to import maven project: See logs for details

问题:导入spark程序的maven依赖包时,无法导入,且报错:0:23 Unable to import maven project: See logs for details 2019-08-23 00:34:05,140 [ 747292] WARN - #org.jetbrains.idea.maven - Cannot reconnect. java.lang.RuntimeException: Cannot reconnect. at org.jetbrains.idea.maven

JsonObject没有fromObject、idea引入maven有红线没依赖、JsonObject maven 依赖包

目录: 1.JsonObject maven 依赖包 2.idea引入maven有红线,没依赖 3.JsonObject没有fromObject \\\\\\\\\\\\\\\\\\\\\\\ 1.JsonObject maven 依赖包 一共就用一个,但是功能全就六个,我也是上网查到的. pom.xml如下: <dependencies> <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib --> &l

Maven类包冲突终极三大解决技巧 mvn dependency:tree

Maven对于新手来说是<步步惊心>,因为它包罗万象,博大精深,因为当你初来乍到时,你就像一个进入森林的陌生访客一样迷茫. Maven对于老手来说是<真爱配方>,因为它无所不能,利如刀锋,使用Maven做开发,如饮美酒如悦美人. Maven对于新手来说,最痛苦的一件事莫过于包之间的冲突,由于Maven的依赖传递性,当你引入一个依赖类时,其身后的依赖类也一起如过江之鲫纷至沓来了. 举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M

Maven工程jar包冲突解决方法

maven确实是一个好用的项目管理工具,相比较传统的JAVAIDE,不需要你提前下载依赖包,只需要在配置文件中添加即可自动下载.但由于maven的传递性依赖特性,maven在下载某一个依赖包时,会连同这个jar包的依赖包一起下载下来,由此也带来了jar包冲突的问题. 解决方法: 1.查看依赖关系: 如果你是使用eclipse来做开发,你可以右键点击你的工程,然后选在run as -> maven build,在Goals的框里填入dependency:tree,回车运行即可. 如果不是,使用命令

[转]Maven类包冲突终极三大解决技巧

举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖).这里有一个需要特别注意的,即B和C同时依赖于X,假设B依赖于X的1.0版本,而C依赖于X的2.0版本,A究竟依赖于X的1.0还是2.0版本呢?这就看Classloader的加载顺序了,假设Classloader先加载X_1.0,而它就不会再加载X_2.0了,如果A恰恰希望使用X_2.0呢,血案就这样不期而遇了.