栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Maven入门-概览【覆盖面全】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Maven入门-概览【覆盖面全】

目录

1. 构建过程

2. 仓库

3. 依赖范围->声明在坐标之下

 4. 生命周期

​ 5. 依赖传递

6. 依赖原则(冲突解决) 

 A. 最短路径原则【就近原则】

B. 路径长度相同【先声明者优先】

C. 依赖的排除

7. Jar包版本统一管理

A. 工程内【properties】

B. 工程间【继承】


Maven是Java的自动化构建工具,可以管理jar包,简化项目构建、发布过程。

1. 构建过程

* 清理:clear,删除原编译文件,方便加入后来编译的文件

* 编译:compile,将源Java文件生成为class字节码文件,生成target目录

* 测试:test-compile,编译测试

* 报告:出测试报告

* 打包:package,将工程打为war、jar包

* 安装:install,将打包文件传输至仓库,执行后我们自己的maven工程就能在仓库找到

* 部署:将war包复制到servlet容器的对应目录下

    注:任一命令均从开头执行,如package是从clean执行的。同时存在关系:约定>配置>编码,常可以通过配置解决问题,以配置方式告诉框架一些信息。

2. 仓库

私服:局域网内的maven仓库,如公司内部的仓库,为小范围共同开发的人提供服务,如Nexus

中央仓库:包括maven自己的工程、第三方的jar包等,为全世界的maven项目服务

中央仓库镜像:架设在各大洲的中央仓库,为中央仓库分担流量,提高用户访问速度,如阿里云中央仓库

3. 依赖范围->声明在坐标之下

jar包的坐标可唯一指定一个工程,一个项目也有其坐标,在其pom文件最前方,是项目的唯一标识。

Compile(默认)

Test

Provided

Runtime

主程序

有效

无效

有效

无效

测试程序

有效

有效

有效

有效

打包

参与

不参与

不参与

参与

例如

Spring-core

Junit

Servlet-api

JDBC驱动

 4. 生命周期

生命周期由各个阶段组成,规定各个构建环节的执行顺序,不能打乱,即当你执行一个阶段时,前面的阶段会自动执行。

maven核心程序定义了抽象的生命周期,生命周期的各个阶段具体任务是由插件完成的。Phase==>plugin==>goal

maven有三套独立的生命周期:clean、site、default(编译、测试、打包、安装、部署)

 5. 依赖传递

依赖分为直接依赖和间接依赖,如D->C->B->A,则C对D而言是直接依赖,A对D而言是间接依赖,他们之间可呈树状的层次关系,所以又叫依赖树。

只有compile范围的依赖可传递,test和provided的不可。

6. 依赖原则(冲突解决) 

 A. 最短路径原则【就近原则】

离最近的优先,如D->C->B->A ,C依赖E1,B依赖E2,实际上D对依赖的引用为离他最近的E1。【解决:可直接在D中显式声明E的版本】

B. 路径长度相同【先声明者优先】

如B->A、C->A,B/C为A的直接依赖,B/C又分别依赖于D1、D2,路径距离相同,则A对D的依赖由B/C在A的pom.xml文件声明顺序决定。

C. 依赖的排除

D->C->B->A,如想取消C对A的引用,加上exclusions标签即可,甚至不用指定版本,与此同时,D对A的引用也被排除了(中间就给掐了)。

7. Jar包版本统一管理

A. 工程内【properties】

在一个maven工程中,多个jar包的版本统一管理。

如spring的核心jar包有7个,可通过本工程中自定义properties标签1.2,在各自jar包的version下由${xx}进行配置,以后只需修改标签内的1.2即可。

B. 工程间【继承】

  1. 可创建一个maven工程A作为工程B、C、D的父工程,A的打包方式为pom放在项目坐标下;
  2. 在B、C、D中声明对父工程A的依赖,和A坐标同级,
  3. 将子工程坐标中与父工程同级的内容删除,如groupId;
  4. A中统一声明对B、C、D同样的jar包版本管理,标签树结构为:--
  5. B、C、D中pom文件相关jar包可删除版本号

注:参考学习视频:

B站尚硅谷:Maven零基础入门教程(一套轻松搞定maven工具)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863301.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号