8.依赖的传递、排除、冲突

8.依赖的传递

说明:孙子是父亲生的,父亲是爷爷生的。孙子想要获取爷爷的某些属性就需要从父亲那里继承部分爷爷的属性。接下来我将写个demo说明maven依赖传递的概念及使用。

冲突概念:a依赖于d的不同版本相同的组件,maven有两条处理原则:

1.短路优先:谁的路径短就依赖谁。

2.路径相同的话:谁先声明就依赖谁。

时间: 2024-10-27 03:29:26

8.依赖的传递、排除、冲突的相关文章

Maven依赖jar包版本冲突解决方案

1.为何会产生依赖冲突 Maven中的传递性依赖机制,一方面简化了依赖声明,另一方面如果传递依赖有可能引发版本冲突.例如:有这样的依赖关系:a->b->c->x(1.0).a->d->x(2.0),对于这样的冲突Maven给出的方案是:第一原则:路径最近者优先,第二原则:在路径长度相等的前提下,pom中的依赖声明的顺序决定了谁会被解析. 2.如何排除依赖 pom如下: <dependency> ...... <exclusions> <exclu

(十)maven之排除冲突jar包

排除冲突jar包 jar包冲突 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.0.6.RELEASE</version> </dependency> </dependencies> 在pom.xml中添加上

Maven依赖传递、依赖传递排除、依赖冲突

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6628429.html  一:Maven依赖传递 假如有Maven项目A,项目B依赖A,项目C依赖B.那么我们可以说 C依赖A.也就是说,依赖的关系为:C->B->A. 那么我们执行项目C时,会自动把B.A都下载导入到C项目的jar包文件夹中. 这就是依赖的传递性. 二:依赖传递的排除 如上,C->B->A.加入现在不想执行C时把A下载进来,那么我们可以用 <exclusions>标

maven exclusion 解决maven传递依赖中的版本冲突

传递依赖是maven最有特色的.最为方便的优点之一,可以省了很多配置.如a 依赖 b,b 依赖c 默认 a也会依赖 c.但是也会带来隐患,如版本冲突.当然maven也考虑到解决办法,可以使用exclusions来排除相应的重复依赖. 但是我们还会遇到一个严重的问题,那就是,我怎么知道是哪个包的传递依赖产生的冲突 ?那该怎么办呢?当然,maven也会有相应的解决方案. 首先,你要在pom.xml中加上maven-project-info-reports-plugin插件. <reporting>

Maven依赖传递排除指定的依赖关系

应用场景:projectA 依赖projectB, projectB 依赖projectC时 projectA中pom.xml <groupId>com.cn.projectA</groupId> <artifactId>projectA</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>

解决maven传递依赖中的版本冲突

首先在pom.xml中添加: <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId> maven-project-info-reports-plugin </artifactId> </plugin> </plugins> </reporting> 如果用的是eclip

httpclient版本冲突,maven工程中传递依赖导致的版本冲突

A服务发送http请求调用B服务时,出现异常信息:2020-03-23 10:15:14.001:WARN:oejs.ServletHandler:qtp760563749-27: org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/http/util/Argsat

maven依赖和传递

compile (编译范围) compile是默认的范围:如果没有提供一个范围,那该依赖的范围就是编译范围.编译范围依赖在所有的classpath 中可用,同时它们也会被打包. 只有compile 才会传递 provided (已提供范围) provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用.例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Serv

Maven的Pom文件中的隐式依赖导致Jar包冲突的问题

在一次的maven项目中遇到这样一个bug: 编译器没有报什么错,但无法编译,或者能编译,项目启动不了.后来我才发现是以下的问题: 项目中的pom文件中,依赖了webx3.core,而webx3.core又隐式依赖了fasttext相关的jar包,同时我在pom中也引人了fasttext.all, fasttext.all也隐式依赖了fasttext相关的jar包,两类jar包版本还不一样,这样就导致了jar包冲突的问题,牵扯到的pom文件依赖如下: <dependency><group