1.Maven是干嘛用的?
- maven可以管理jar文件
- 自动下载jar和他的文档,源代码
- 管理jar直接的依赖,a.jar需要b.jar,maven会自动下载b.jar
- 管理你的jar版本
- 帮你编译程序,把Java编译为class
- 帮你测试代码是否正确
- 帮你打包文件,形成jar文件,或者war文件
- 帮你部署项目
2.Maven核心概念
Maven能够实现自动化构建是和它的内部原理分不开的,这里从Maven的九个核心概念入手,看看Maven是如何实现自动化构建的
-
POM: 一个文件,名称是pom.xml,POM翻译过来叫项目对象模型,maven把一个项目当做一个模型使用。控制maven构建项目的过程,管理jar依赖。
-
约定的目录结构: Maven项目的目录和文件的位置都是规定的。
-
坐标: 是唯一的一个字符串,用来表示资源的。
-
依赖管理: 管理你的项目可以使用jar文件。
-
仓库管理(了解):你的资源存放的位置。
-
生命周期(了解):Maven工具构建项目的过程,就是生命周期。
-
插件和目标(了解):执行Maven构建的时候使用的工具是插件。
-
继承
-
聚合
3.Maven工具的安装和配置。
- 下载Maven3.3.9-bin.zip安装包
- 解压安装包
- 配置环境变量
4.Maven的核心概念
Maven 能够实现自动化构建是和它的内部原理分不开的,这里我们从 Maven 的九个核心概念入手,看看 Maven 是如何实现自动化构建的
Maven 的核心程序中仅仅定义了抽象的生命周期,而具体的操作则是由 Maven 的插件来完成的。可是
Maven 的插件并不包含在 Maven 的核心程序中,在首次使用时需要联网下载。下载得到的插件会被保存到本地仓库中。本地仓库默认的位置是:~.m2\repository。
约定的目录结构
约定的目录结构对于 Maven 实现自动化构建而言是必不可少的一环,就拿自动编译来说,Maven 必须能找到 Java 源文件,下一步才能编译,而编译之后也必须有一个准确的位置保持编译得到的字节码文件。我们在开发中如果需要让第三方工具或框架知道我们自己创建的资源在哪,那么基本上就是两种方式:
①通过配置的形式明确告诉它
②基于第三方工具或框架的约定
Maven 对工程目录结构的要求就属于后面的一种。
POM
Project Object Model:项目对象模型。将 Java 工程的相关信息封装为对象作为便于操作和管理的模型。Maven 工程的核心配置。可以说学习 Maven 就是学习 pom.xml 文件中的配置。
坐标:
使用如下三个向量在 Maven 的仓库中唯一的确定一个 Maven 工程。
[1]groupid:公司或组织的域名倒序+当前项目名称
[2]artifactId:当前项目的模块名称
[3]version:当前模块的版本
<groupId>com.atguigu.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
依赖
Maven 中最关键的部分,我们使用 Maven 最主要的就是使用它的依赖管理功能。要理解和掌握 Maven的依赖管理,我们只需要解决一下几个问题:
①依赖的目的是什么
当 A jar 包用到了 B jar 包中的某些类时,A 就对 B 产生了依赖,这是概念上的描述。那么如何在项目中以依赖的方式引入一个我们需要的 jar 包呢?答案非常简单,就是使用 dependency 标签指定被依赖 jar 包的坐标就可以了。
<dependency>
<groupId>com.atguigu.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>