Maven学习总结(禁止转载)
2019-12-31 16:05:56来源:博客园 阅读 ()
Maven学习总结(禁止转载)
1. Maven综述与拓展概念准备
Maven起源:生产环境下开发不再是一个项目一个工程,而是每一个模块创建一个工程, 而多个模块整合在一起就需要使用到像 Maven 这样的构建工具。
Maven定义:一个自动化构建工具
Maven简介:Maven是Apache软件基金会组织维护的一款自动化构建工具,专注服务于Java平台的项目构建和依赖管理。
构建:构建就是以我们编写的 Java 代码、框架配置文件、 国际化等其他资源文件、 JSP 页
面和图片等静态资源作为“原材料”, 去“生产”出一个可以运行的项目的过程。
2. Maven核心概念
2.1 POM
Project Object Model:项目对象模型。将 Java 工程的相关信息封装为对象作为便于操作和管理的模型。Maven 工程的核心配置。可以说学习 Maven 就是学习 pom.xml 文件中的配置。
2.2约定的目录结构
2.3坐标
Maven 的坐标
使用如下三个向量在 Maven 的仓库中唯一的确定一个 Maven 工程。
[1]groupid:公司或组织的域名倒序+当前项目名称
[2]artifactId:当前项目的模块名称
[3]version:当前模块的版本
<groupId>com.atguigu.maven</groupId> |
2.4依赖管理
2.4.1依赖概念与配置
Maven 中最关键的部分, 我们使用 Maven 最主要的就是使用它的依赖管理功能。
可以近似理解为jar包的import语句思想。
<dependency> |
2.4.2依赖的范围
坐标的 scope 设置,是依赖的范围。依赖的范围有几个可选值, 我们用得到的是: compile、 test、 provided 三个。
compile |
test |
provided |
|
主程序 |
√ |
× |
√ |
测试程序 |
√ |
√ |
√ |
参与部署 |
√ |
× |
× |
2.4.3依赖的传递性
A 依赖 B, B 依赖 C, A 能否使用 C 呢? 那要看 B 依赖 C 的范围是不是 compile, 如果是则可用, 否则不可用。
2.4.4依赖的排除
切断依赖的传递性
<dependency> |
2.4.5统一管理所依赖的jar包版本
[1] 统一声明版本号
<properties> |
[2] 引用前面声明的版本号
<dependencies> </dependency> </dependencies> |
2.4.6依赖的原则
- 最短路径优先
- 相同路径先声明优先
- 父工程配置
2.4.7在父工程中管理依赖
<dependencyManagement> </dependency> |
- 子工程配置
<dependencies> |
2.4.8聚合
将多个工程拆分为模块后, 需要手动逐个安装到仓库后依赖才能够生效。 修改源码后也需要逐个手动进行 clean 操作。 而使用了聚合之后就可以批量进行 Maven 工程的安装、清理工作。
方法:在总的聚合工程中使用 modules/module 标签组合,指定模块工程的相对路径
<modules> |
2.5仓库管理
本地仓库:为当前本机电脑上的所有 Maven 工程服务
远程仓库:私服、中央仓库、中央仓库镜像
2.6生命周期
Maven 有三套相互独立的生命周期, 分别是:
①Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
②Default Lifecycle 构建的核心部分,编译,测试,打包,安装,部署等等。
③Site Lifecycle 生成项目报告,站点,发布站点。
它们是相互独立的,你可以仅仅调用 clean 来清理工作目录,仅仅调用 site 来生成站点。 当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。运行任何一个阶段的时候,它前面的所有阶段都会被运行
2.7插件和目标
Maven 的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的。
●每个插件都能实现多个功能,每个功能就是一个插件目标。
●Maven 的生命周期与插件目标相互绑定,以完成某个具体的构建任务。
例如:compile 就是插件 maven-compiler-plugin 的一个目标;
pre-clean 是插件 maven-clean-plugin 的一个目标。
3. 资料与工具准备
3.1资料
尚硅谷Java视频教程_Maven视频:
https://www.bilibili.com/video/av36557763?p=1
3.2工具
MVNrepository(Jar包依赖信息搜索):
https://mvnrepository.com/
EclipseEE:
https://www.eclipse.org/downloads/packages/
JDK:
https://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
Maven:http://maven.apache.org/
原文链接:https://www.cnblogs.com/stevenwsx/p/12126458.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:黑马客户管理系统(SSM)
下一篇:IDEA 单行注释与代码对齐
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- java学习之第一天 2020-06-11
- Java学习之第二天 2020-06-11
- Spring WebFlux 学习笔记 - (一) 前传:学习Java 8 Stream Ap 2020-06-11
- Linux简单命令的学习 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash