使用Maven来管理 java 项目,是不是就不会产生jar包冲突? 5C

Maven对有冲突的jar包,采用最短路径、最先声明两种原则来解决。
这样一来, 我们是不是将只管写上pom.xml文件的节点的内容,其他jar包的冲突等maven自动处理?

8个回答

重复引用了一样会冲突,或者引用了多个版本。

zzz1192993261
Sincle_z 重复引用的话,Maven的“ 声明优先”策略不是就能自动解决吗?
2 年多之前 回复

maven会控制版本的你只需要在版本生命的地方写上版本号就行了

也有会产生冲突的时候

zzz1192993261
Sincle_z 也会冲突吗?Maven的 路径优先 和 声明优先 策略不是已经把冲突解决了吗?
2 年多之前 回复
 Maven的依赖仲裁优先级

路径优先:1.对于该项目而言,根据jar包的依赖路径,短的优先
声明优先:2.路径一样,被依赖者声明的前后有关,同一个pom,前面的优先
覆写优先:3.子pom优先于父pom

http://blog.csdn.net/haiyuntai/article/details/53411746

maven会控制版本的你只需要在版本生命的地方写上版本号就行了 好像这样

看怎么管理maven中的jar包了:
对于依赖,请遵循如下原则:
路径优先,简单来说,假设第一种的路径深度是3,第二种的路径深度是4,那么maven会采用路径深度为3的依赖关系;
假设两者的路径的深度一样,那么声明在前面的会被优先采用
对于jar包的管理有如下两种:
版本锁定,使用dependencyManagement对所依赖jar包进行版本管理的管理器,如果dependencies里的dependency没有声明
version元素,那么maven会到dependencyManagement里面去找是否对artifactId和groupId进行声明,若有,就继承此版本,若
无就会报错,必须声明一个version;如果dependencies中的dependency声明了version,那么无论dependencyManagement中
是否对该jar的version声明,皆以dependency里的version为准。
排除依赖,就是存在两个或多个相同jar包的情况,存在版本冲突的情形,会导致某些操作失效(比如:openSessionInView失效),
故需排除低版本的jar包:
在version后面加如下例子:

1. <exclusions>  
2.        <exclusion>  
3.           <groupId>org.springframework</groupId>  
4.           <artifactId>spring-beans</artifactId>  
5.        </exclusion>  
6.        </exclusions>  

添加后,此版本的jar包会消失。

会有冲突的,比如一个jar包你下了2个版本的。

一般是不会的,但是如果你配置了pom文件有问题的话,这个是一定问题的,它只是默认的,最好的集成方案,但是主要是看配置文件的,

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问