Maven的概述和基础(学习整理)

1. Maven是啥

Maven是一个项目管理工具,包含了一个项目对象模型(POM),一组标准集合,一个项目生命周期(Lifecycle),一个依赖管理系统,和用来运行定义在生命周期阶段中的插件目标的逻辑。

2. Maven能解决什么样的问题

  • 解决 jar 包冲突
  • 编译代码
  • 便捷进行单元测试
  • 打包项目、生成报表
  • 部署项目、生成站点

3. 依赖管理

笼统说,依赖管理就是Maven工程对 jar 包的管理过程
区别:

  • 传统Web工程:jar 包存放在项目中,大大占用磁盘空间
  • Maven的Web工程:jar 包不放在项目中,而是通过”坐标“在统一的 jar 包仓库中搜索使用,代码重用的开发理念
  • (因为 jar 包仓库是很大的,一个两个项目体现不出Maven的优势,只有遇到大量项目时才会体现出体积优势)

4. 一键构建项目

构建的步骤:编译、测试、运行、打包、安装、部署
通过将所有的步骤统一交给Maven,做到了项目的一键构建
Maven规范化构建流程:清理、编译、测试、报告、打包、部署

5. Maven仓库

  1. 因为Maven项目中没有存放 jar 包,里面只用 jar 包的坐标。要用的 jar 包的时候,就得根据坐标去Maven的仓库中寻找相应的 jar 包。
  2. Maven仓库分为
    • 本地仓库:安装Maven的时候,Maven会自动在C盘的 /User/当前用户/.m2/repository 目录布置本地仓库,可以手动设置本地仓库路径。
    • 中央仓库:apache提供的几乎所有的开源 jar 包仓库。
    • 远程仓库:企业提供不联网情况下也可以下载 jar 包的仓库,仓库安置在企业私有数据库。
  3. 关系:
    • 本地仓库:提供项目使用的 jar 包,可以从远程仓库和中央仓库获取 jar 包,也可以将个人的 jar 包上传到远程仓库。
    • 中央仓库:为本地仓库和远程仓库提供几乎所有开源 jar 包。
    • 远程仓库:为本地仓库提供 jar 包,也可以从本地仓库(需要本地仓库手动上传)和中央仓库获取 jar 包。

6. Maven项目结构

Maven将代码分为两个大的部分,分为核心部分和测试部分,将核心和测试分隔开,便于开发和测试

  • src/main/java:核心代码
  • src/main/resources:配置文件
  • src/test/java:测试代码
  • src/test/resources:测试配置文件
  • src/main/webapp:web开发的目录,存放页面的资源

7. Maven的常用命令

  • mvn clean:清理项目生成的编译文件,删除 target 文件夹
  • mvn compile:编译 src/main 目录下的代码,生成 target 文件夹,存放着编译后的项目文件
  • mvn test:编译 src/main 和 src/test 目录下的代码
  • mvn package:编译 src/main 和 src/test 目录下的代码,并将项目打包 (可以在项目 pom.xml 文件的 <packaging> 标签中设置打包的文件格式)
  • mvn install:编译 src/main 和 src/test 目录下的代码,并将项目打包,将包安装到了本地仓库
  • mvn tomcat:run:将项目编译后生成的包加载到 Maven 自带的 Tomcat 中

8. Maven的生命周期

  • Maven项目的五个重要步骤:清理、编译、测试、打包、安装、发布
  • "清理"作为清理生命周期独立于后五项组成的默认生命周期存在
  • 默认生命周期:要想完成测试就一定要经过编译;要想完成打包就一定要先经过编译、测试两个环节,剩下的步骤同理

9. Maven的概念模型

Maven的两大特性:依赖管理、一键构建

  1. 依赖管理
    依赖管理分为:项目对象模型 和 依赖管理模型
    • 项目对象模型:核心的就是项目中的 pom.xml 文件,文件里记录着 项目自身信息、使用的 jar 包信息、项目运行环境信息
    • 依赖管理模型:由 jar 包的坐标和 仓库 组成,坐标由 jar 包的项目名称、模块名称、版本和依赖范围(防止 jar 包冲突)
  2. 一键构建
    依赖于Maven的生命周期特性,每一个步骤都依托于Maven底层的一个插件来完成,最后完成一键构建的功能
posted @ 2019-08-28 19:12  苍凉温暖  阅读(261)  评论(0编辑  收藏  举报