Maven-依赖

一、  依赖包的查询

1.      所有的依赖都是通过坐标进行存储的(GAV->groupId,artifactId,version)

2.      有一些网上的仓库提供了坐标的查询。

mvnrepository.com

nexus ->sonatype

二、   依赖的传递性

1、 依赖是会被传递的

A->C B->A   -->   b->C  (这种依赖是基于compile这个范围进行依赖)

如果没有写scope默认就是compile范围。

对于依赖的依赖而言,主要是针对compile作用域传递。

扫描二维码关注公众号,回复: 3319193 查看本文章

2、 作用域的介绍

Maven的scope依赖作用域说明:

test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖

compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去

provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突 

runtime在运行的时候依赖,在编译的时候不依赖 

默认的依赖范围是compile 。

3、 传递的冲突问题

1、  a->b1.0   c->b1.1  d->a和c,这个时候在d的pom中哪一个依赖献血,就使用先写依赖的版本。

如果d-><dependency>a< /dependency >< dependency >c< /dependency>依赖版本是b1.0。

2、  a->b1.0  c->b1.1  dàa和c->b1.0  f->d,c,如果路径的长短不一致就选择最小路径f->b1.1。

3、  如果需要精确的控制依赖包,可以使用依赖的排除功能进行控制。

或者全部排除,自己写一个自己想要的一个版本的依赖。

一、      依赖的聚合问题

新建项目,只包含pom.xml文件。

四个项目一次性打包。

二、      聚合和继承问题

属性定义以及引用:

继承:

Parent:

子类继承:

依赖的继承需要通过dependencyManagement来完成管理。


子类实现继承:

 

由于我们开发的是用一个同一个版本的项目,所以在我们开发的模块中的groupId和version可以用$(project.groupId)和$(project.version)表示。

三、      版本管理

格式:

总版本号.分支版本号.小版本号-里程碑版本

总版本号的变动一般表示框架的变动。

分支版本号一般表示增加了一些功能

小版本号:在分支版本上面进行bug的修复

里程碑版本:SNAPSHOT(开发中版本)àalpha(内部测试版本)àbeta(外部的工作版本)àrelease(发布版本)àGA(稳定版本)

hello0.0.1-SNAPSHOT->hello0.0.1-Release->hello1.0.0-SNAPSHOT

                  ->hello0.1.0-SNAPSHOT->hello0.1.0-Release    ->user1.0.0-Release




猜你喜欢

转载自blog.csdn.net/u013094043/article/details/80873510