mavean的依赖传递和排除依赖】的更多相关文章

三个mavean项目 A  .B. C 如果B依赖A(A先执行clean package命令) 那么B得pom.xml文件里面就写 <dependency> <groupId>A的包名</groupId> <artifactId>A的项目名</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> 如果C项目依赖B(B先执行clean packag…
1 依赖的传递 假如 A项目 依赖 a.jar 1.0.1,b.jar 1.0.1,没有直接依赖c.jar 1.0.1,但是b.jar 1.0.1依赖了c.jar 1.0.1,可以说A项目间接依赖了c.jar 1.0.1 B项目 依赖 a.jar 1.0.2,b.jar 1.0.2,c.jar 1.0.2. C项目直接依赖 A,B项目 但是C中的pom文件先依赖A再依赖B 那么C中a.jar 的版本为1.0.1  a.jar都是直接依赖,按照依赖的优先顺序,而C中c的jar版本为1.0.2. 2…
现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用<dependency>标签来进行jar包的引入即可. <dependency>其实就是依赖,关于依赖管理里面都涉及哪些内容,我们就一个个来分析下: 依赖传递 可选依赖 排除依赖 我们先来说说什么是依赖: 依赖指当前项目运行所需的jar,一个项目可以设置多个依赖. 格式为: <!--设置当前项目所依赖的所有jar--> <dependencies>…
转载请注明原文地址: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传递依赖冲突的问题,所以记录下解决的过程,遇到类似问题供参照. 问题现象: 某服务不可用,查看启动log有报错信息,例如: java.lang.NoSuchMethodError,类名和方法名看起来,初步判断出是在某个依赖的jar包里. 排查步骤: 首先确认是哪个jar包.根据类名进行搜索,确认jar包为:netty.同时发现本地依赖的jar包版本都有多个,已经基本可断…
说maven依赖冲突之前需要先说说maven的 依赖传递. 依赖传递 当前项目引入了一个依赖,该依赖的依赖也会被引入项目.更加准确的说法是,maven会解析直接依赖的POM,将那些必要的间接依赖,以传递依赖的形式引入到当前项目中. 为什么说是'必要的间接依赖'呢?这是因为不是所有的间接依赖都会被引入的.这还得说说maven的 依赖范围. 依赖范围 maven引入依赖,并不是把jar包拷贝到项目中来,而是把jar包下载到本地仓库,然后通过制定classpath来在项目中引入具体的jar包.mave…
什么是传递依赖 在Maven仓库中,构件通过POM(一种XML文件)来描述相关信息以及传递性依赖.Gradle 可以通过分析该文件获取获取所以依赖以及依赖的依赖和依赖的依赖的依赖,为了更加直观的表述,可以通过下面的输出结果了解. +--- org.springframework:spring-web:4.3.4.RELEASE | | +--- org.springframework:spring-aop:4.3.4.RELEASE | | +--- org.springframework:sp…
转自:https://www.cnblogs.com/duanxz/p/6084494.html 大家都知道Maven的优点是依赖管理,特别是前期使用ANT的开发者都有很多感触.最近要开发一个java工程,定的要使用maven,会使用hadoop和hbase的客户端,而引入一个hadoop-client的jar或者hbase的jar包,会依赖十几个其他的jar包,而这些jar包的功能我又用不上,所以这种依赖反倒成了工程瘦身的负担.关键我还有强迫症,见到这些对工程无用的包,我就抓狂.所以在网上百找…
一: 依赖范围scope 共5种,compile (编译).test (测试).runtime (运行时).provided.system 不指定,则依赖范围默认为compile. compile:编译依赖范围,在编译,测试,运行时都需要. test: 测试依赖范围,测试时需要.编译和运行不需要.如Junit runtime: 运行时依赖范围,测试和运行时需要.编译不需要.如JDBC驱动包 provided:已提供依赖范围,编译和测试时需要.运行时不需要.如servlet-api system:…
间接依赖的包中有同级相同的依赖,那么按照写在前面的依赖:如果不同级有相同的依赖,那么按照级别最高的为准. 依赖的范围scope(test/compile/provided/runtime) test:测试范围有效,在编译和打包时不会使用这个依赖,不会传递 compile:编译范围有效,在编译和打包时都会将依赖存储进去 provided:在编译和测试的过程有效,最后生成war包时不会加入,如servlet-api runtime:在运行的时候依赖,在编译的时候不依赖   排除依赖      <de…