Maven快速入门1

1.简介

Apache Mavne是一个项目管理和构建工具,它基于项目对象模型(Project Object Mode,简称POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。
image.png

2.特性

2.1 项目结构

提供了一套标准化的项目结构,所有IDE(eclipse,myeclipse,idea Utilimate)使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用。
image.png

2.2 依赖管理机制

提供了一套依赖管理机制,管理所依赖的第三方资源(jar,插件等)。Maven 使用标准的坐标配置来管理各种依赖,只需要简单的配置就可以完成依赖管理
image.png

2.3 构建流程

提供了一套标准化的构建流程(编译,测试,打包,发布…)。Maven提供了一套简单的命令来完成项目构建
image.png

3.生命周期

Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
111.png

生命周期各个阶段:

  • validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程。
  • initialize(初始化) 初始化构建状态,比如设置属性值。
  • generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码。
  • process-sources(处理源代码) 处理源代码,比如说,过滤任意值。
  • generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件。
  • process-resources (处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备。
  • compile(编译) 编译项目的源代码。
  • process-classes(处理类文件) 处理编译生成的文件,比如说对Java class文件做字节码改善优化。
  • generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码。
  • process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值。
  • generate-test-resources(生成测试资源文件) 为测试创建资源文件。
  • process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录。
  • test-compile(编译测试源码) 编译测试源代码到测试目标目录.
  • process-test-classes(处理测试类文件) 处理测试源码编译生成的文件。
  • test(测试) 使用合适的单元测试框架运行测试(Juint是其中之一)。
  • prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备。
  • package(打包) 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。
  • pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。
  • integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中。
  • post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。
  • verify (验证) 运行任意的检查来验证项目包有效且达到质量标准。
  • install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。
  • deploy(部署) 将最终的项目包复制到远程仓库中与其他开发者和项目共享。

4.坐标

Maven中坐标是资源的唯一标识,使用坐标来引入所需要的资源(如jar包)

4.1 组成部分

坐标一般由以下部分构成:

  • groupId: 隶属的组织名称,通常是域名反写,如:com.alibaba
  • artifactId:项目名称,通常是模块名称,如:order-service
  • version:版本号
  • scope:作用范围,默认值为compile。
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.30</version>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.20</version>
</dependency>

4.2 scope作用范围

image.png

5.仓库

仓库是用来存放各种jar的集合,可以分为三类:

  • 本地仓库:自己计算机上的一个目录。
  • 远程仓库(私服):**自己公司搭建的私有仓库。
  • 中央仓库:**由maven团队维护的全球唯一的仓库,地址:https://repo1.maven.org/maven2/

jar包查找顺序:
①查找本地仓库

  • 如果有对应的jar,则直接返回
  • 如果没有,则查找远程仓库

②查找远处仓库

  • 如果有对应的jar,则下载该jar到本地仓库并返回
  • 如果没有,则查找中央仓库

③查找中央仓库

  • 如果找到对应的jar,则下载该jar到本地仓库并返回
  • 如果没有,则提示报错

image.png

6.maven安装

  1. 从官网http://maven.apache.org/ 下载安装包apache-maven-3.8.5.rar 并解压。
  2. 配置环境变量Maven_HOME为安装路径的bin目录
  3. 修改配置文件setting.xml,配置本地仓库和阿里云私服

image.png

配置本地仓库和远程私服:
image.png

7.依赖管理

  • 依赖(dependency)指当前运行所需的jar,一个项目可以设置多个依赖,一个依赖对应一个jar

image.png

依赖具有传递性

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被加载的资源如果依赖其他资源,则当前项目间接依赖其他资源

image.png

依赖冲突解决原则:
①路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
②声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
③特殊优先:当**同级(同一个pom.xm)**配置了相同资源的不同版本,后配置的覆盖先配置的
image.png

8.属性

通过自定义属性,可以更加方便的管理依赖,后续只需修改属性值就可以统一升级版本号。
image.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值