Maven依赖范围及依赖传递】的更多相关文章

转自:https://www.cnblogs.com/duanxz/p/6084494.html 大家都知道Maven的优点是依赖管理,特别是前期使用ANT的开发者都有很多感触.最近要开发一个java工程,定的要使用maven,会使用hadoop和hbase的客户端,而引入一个hadoop-client的jar或者hbase的jar包,会依赖十几个其他的jar包,而这些jar包的功能我又用不上,所以这种依赖反倒成了工程瘦身的负担.关键我还有强迫症,见到这些对工程无用的包,我就抓狂.所以在网上百找…
说maven依赖冲突之前需要先说说maven的 依赖传递. 依赖传递 当前项目引入了一个依赖,该依赖的依赖也会被引入项目.更加准确的说法是,maven会解析直接依赖的POM,将那些必要的间接依赖,以传递依赖的形式引入到当前项目中. 为什么说是'必要的间接依赖'呢?这是因为不是所有的间接依赖都会被引入的.这还得说说maven的 依赖范围. 依赖范围 maven引入依赖,并不是把jar包拷贝到项目中来,而是把jar包下载到本地仓库,然后通过制定classpath来在项目中引入具体的jar包.mave…
现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用<dependency>标签来进行jar包的引入即可. <dependency>其实就是依赖,关于依赖管理里面都涉及哪些内容,我们就一个个来分析下: 依赖传递 可选依赖 排除依赖 我们先来说说什么是依赖: 依赖指当前项目运行所需的jar,一个项目可以设置多个依赖. 格式为: <!--设置当前项目所依赖的所有jar--> <dependencies>…
原博文出自于:http://blog.csdn.net/liutengteng130/article/details/47000069   感谢! 假设A-->C  B-->A      ==> B-->C ,A依赖于C是直接依赖,B依赖于A是直接依赖,B依赖于C是传递依赖. 现象一 举个例子:A-->log1.0  B-->log2.0 C-->A,B 那么我们来看依赖关系: User-core依赖于log4j 1.2.17 <dependency>…
一.依赖 我们项目中依赖的jar包可以通过依赖的方式(dependencies元素下添加dependency子元素)引入. <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> <dependency> <groupId>juni…
 1 maven概念模型 2 maven的生命周期,项目构建过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> Maven生命周期就是为了对全部的构建过程进行抽象和统一 包含项目清理,初始化,编译,打包,測试,部署等…
Maven坐标与依赖 最近想深度学习下maven,找到一本书叫<Maven实战>,这本书讲的确实很好,唯一遗憾的是当时maven教学版本是3.0.0的,而目前已经到了3.5.4了,版本存在差距, 没关系,如果有时间和精力我也会阅读官方文档,看看到底有哪些变换. 一.坐标详解 1.何为Maven坐标 maven定义了这样一组规则:世界上任何一个构件都可以使用maven坐标唯一标识,坐标元素包括:groupId.artifactId.version.packaging.classifier.只要提…
一.问题 项目开发过程中,经常会遇到jar冲突,然后maven根据自己的规则进行冲突解决,导致项目在运行的过程中报错. 1.maven自动解决依赖冲突的规则是什么? 2.如何查看当前项目的maven的依赖树? 3.如何从依赖树中找到自己预期的版本,是被那个jar给覆盖了? 4.如何人工进行依赖冲突解决,达到使用目的? 二.解决问题 1.maven自动解决依赖冲突的规则是什么? 第一原则:路径最近者优先 项目A有如下的依赖关系: A->B->C->X(1.0) A->D->X(…
Github地址:https://github.com/zwjlpeng/Maven_Detail Maven最大的好处就是能够很方便的管理项目对第三方Jar包的依赖,只需在Pom文件中添加几行配置文件,就可以将第三方的Jar包纳入自已项目的类路径下,在Pom配置文件中我们也可以指定第三方Jar包的版本号,表明依赖第三方某一版本的Jar包,因此通过Maven管理项目的依赖,我们可以很容易的对项目依赖的第三方Jar包进行升级,升级过程中需要我们做的仅仅是更改配置文件->重新mvn package即…
转载:http://blog.csdn.net/J080624/article/details/54692444 什么是依赖? 当 A.jar 包用到了 B.jar 包时,A就对B产生了依赖: 在项目中以依赖的方式引入一个jar: 使用dependency标签指定被依赖的jar的坐标即可. <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <versio…