Maven中的依赖
1.依赖包的查询
??? (1)、所有的依赖都是通过坐标来进行存储的(GAV-->groupId、artifactId、version)
??? (2)、有一些网上的仓库提供了坐标的查询(http://mvnrepository.com)
??? (3)、通过<dependencies>设置依赖
???
??? maven是如何搜索依赖的?首先会在本地仓库查询如果本地仓库没有,就去中央仓库查询
?
2.依赖的传递性
??? (1)、依赖是会被传递
????????? A-->C? B-->A ==> B-->C(这种依赖是基于compile这个范围进行传递)
?????????
?????? (2)传递的冲突问题
??????????? 1、a-->b1.0? c-->b1.1? d-->a和c,这个时候在d的pom中,哪一个依赖先写就使用先写依赖的版本
??????????????? 如果d--><d>a</d><d>c</d>-->依赖版本是b1.0
??????????? 2、a-->b1.0 c-->b1.1 d-->a和c-->b1.0? f-->d,c,如果路径的长短不一致就选择最小路径
??????????????? ?f-->b1.1
??????????? 3、如果希望精确的控制依赖包,可以使用依赖的排除功能进行控制
??????????????
?
3.依赖的范围
???? ( 1)、test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
???? (2)、compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
???? (3)、provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为?? servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
???? (4)、runtime在运行的时候依赖,在编译的时候不依赖
???? (5).、默认的依赖范围是compile
?
4.聚合和继承
?
?
?
?
?
5.版本管理
????总版本号.分支版本号.小版本号-里程碑版本
????总版本号的变动一般表示框架的变动
??? 分支版本号:一般表示增加了一些功能
??? 小版本号:在分支版本上面进行bug的修复
??? 里程碑:SNAPSHOT-->alpha-->beta-->release-->GA
??? user0.0.1-SNAPSHOT-->user0.0.1-Release--->user1.0.0SHAPSHOT? -->user1.0.0-Rlease
?????????????????????????? -->user0.1.0-SNAPSHOT-->user0.1.0-Rlease
?
?