Maven是什么
Maven:本质是一个项目管理工具,将项目开发和管理过程抽象成为一个项目对象模型(POM)
POM:(Project Object Model):项目对象模型
Maven的作用:
项目构建:提供标准的、跨平台的自动化项目构建方式
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
统一开发结构:提供标准的,统一的项目结构
认识Maven目录(下载官网http://maven.apache.org/download.cgi)
Binary tar.gz archive-------适用于Linux、MacOsX系统的二进制安装工具。
Binary zip archive-------适用于Windows系统的二进制安装工具。
Source tar.gz archive -------Linux系统下的源码
Source zip archive-------Windows系统下的源码。
了解一下Maven的目录:
bin:maven所有可运行指令
boot:里面的jar包是一个类加载器
conf:maven的配置文件
lib:运行所需要的jar包
Maven基础概念
仓库
仓库:用于储存资源,包含各种jar包
仓库分类:
本地仓库:自己电脑上储存资源的仓库,连接远程仓库获取资源
远程仓库:非本机电脑上的仓库,为本地仓库提供资源
中央仓库:Maven团队维护,存储所有的资源的仓库
私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
私服的作用:
保存具有版权的资源,包含购买或自主研发的jar包
中央仓库中的jar包都是开源的,不能存储具有版权的资源
一定范围内共享资源,仅对内部开放,不对外共享
坐标
什么是坐标?
maven中的坐标用于描述仓库中资源的位置
https://repo1.maven.org/maven2/
Maven坐标主要组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
artifactId:定义当前maven项目名称(通常是模块名称,例如CRM、SMS)
version:定义当前项目版本号
packaging:定义该项目的打包方式
Maven坐标的作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别和下载工作交给机器完成
https://mvnrepository.com/
坐标信息
仓库配置
在conf目录下的settings.xml内进行配置
本地仓库配置
Mavne启动后,会自动保存下载的资源到本地仓库
默认位置:${user.home}/.m2/repository
当前目录位置为登录用户名所在目录下的.m2文件夹中
自定义位置
E:\maven\repository
当前目录为自为D:\maven\repository文件夹中
远程仓库配置
Maven默认连接的仓库位置
central
Central Repository
https://repo.maven.apache.org/maven2
default
false
镜像仓库配置(避免远程仓库是外网,下载比较慢)
在conf目录下的setting文件中配置阿里云镜像仓库
<mirror>
<!-- 此境像的唯一标识符,用来区分不同的mirror元素 -->
<id>nexus -aliyun</id>
<!--对那种仓库进行镜像,简单说就是替代那个仓库 -->
<mirrorOf>central</mirrorOf>
<!-- 镜像名称-->
<name>Nexus aliyun</name>
<!-- 镜像URL -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
**全局setting与用户setting的区别**
全局setting定义了当前计算机中的Maven的公共配置(我们刚刚配置的setting就是全局)
用户setting定义了当前用户的配置(不同的用户不想用阿里的,那么自己可与全部在配置一个setting)
Maven工程结构
创建结构后,在src同层目录下创建pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itheima</groupId>
<artifactId>project-java</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
Maven工程构建
Maven工程目录结构
Maven常用项目构建指令
Maven项目(插件创建项目)
Maven Web工程多一个 webapp