说明:该文章是对Maven入门指南的学习笔记记录,只起提示作用,包含知识点较少
Maven介绍
1. Maven是一个强大的Java构建工具。它是用Java开发的,被较多地用于Java项目中。
2. 事实上,Maven不仅仅是一个构建工具。 Maven哲学:http://maven.apache.org/background/philosophy-of-maven.html
3. Maven官方网站地址:http://maven.apache.org
构建工具?
1. 构建工具是将软件项目构建相关的过程自动化的工具。
2. 构建一个软件项目通常包含以下一个或多个过程:
- 生成源码(使用项目自动生成源码)
- 从源码生成项目文档
- 编译源码
- 将编译好的代码打包成jar文件或者zip文件
- 将打包好的代码安装到服务器. 仓库或其他地方
3. 自动构建工具的好处是降低了手动构建的犯错风险;并且加快了构建速度
安装Maven
1. 下载并解压Maven
2. 配置环境变量:M2_HOME, M2_HOME/bin(windows:%M2_HOME%/bin, linux:$M2_HOME/bin)
3. 控制台:mvn -version 有正确的报错或版本信息说明已经成功安装了Maven
4. 注意:Maven运行需要Java环境,因此也需要安装Java,需求是1.5以上
Maven工作流程
1. 读取pom.xml
Maven的中心思想是POM(Project Object Model)文件:以xml文件形式表述项目的资源,应该位于项目的根目录下
该文件指定了Maven构建的所有内容。正常情况下,我们只需要指定本项目的group id/ artifact id/ version即可
modelVersion - 使用的POM模型的版本,一般是4.0
group id - 组织或项目唯一的ID,一般与java包的根名一致,理论上可以不一致,但是会付出相应的代价(使用时需要增加更多的配置)
artifact id - 构件ID,即我们自己的项目id
version - 项目的版本号,可以在后面加上-snapShoot表明是一个快照构件,这样其余POM在下载依赖时每次都会从中央库或远程库下载最新的版本,不管本地库有没有
构建完成之后的jar包路径:
MAVEN_REPO/groupID/artifactID/version/artifactID-version.jar
2. 下载依赖到本地仓库
Maven迭代仓库顺序:本地仓库 -> 中央库 -> 远程仓库
远程仓库可以是任何网络上的地址,一般用于项目组或公司内部的共享但不可公开的包
3. 执行生命周期. 阶段和目标
一个生命周期指的是一系列构建阶段,每一个构建阶段由一系列目标组成。
可以单独执行一个构建阶段或构建目标,执行时,该阶段之前的所有阶段默认都会被执行
4. 执行插件
插件用于向构建阶段中增加额外的构建目标,Maven提供一些通用的插件,但是我们可以自己开发插件
POM的继承关系
POM之间可以集成,从而实现最大程度上的重用,如果没有指定继承哪一个父POM,则默认继承艮POM
Effective POM
总的pom文件(所有继承关系生效后)被称为有效pom(effective pom)。在Eclipse中可以直接查看,也可以在控制台打印出来
依赖
1. 项目依赖:略
2. 外部依赖:
即不在仓库中的jar包的依赖,在本机的其它地方,也是要通过配置文件的方式将其导入Maven依赖的
3. 快照依赖
快照版本的每一个build版本都会被下载到本地仓库,即使该快照版本已经在本地仓库了一般用于那些还在开发中的依赖(jar包)。
版本号后的-SNAPSHOT即可
可以在Maven配置文件中设置快照版本下载的频率。