一、概述
简介
一款项目管理工具,由java语言进行编写,沿用了java面向对象的思想,把项目开发和管理的过程抽象成了一个 POM (对象模型) ,同时将描述对象的属性方法放到了pom.xml文件中,用于描述对象模型。
图中蓝色部分代表maven,主要有三部分构成: |
项目对象模型(POM):项目开发与管理 依赖管理:通过坐标获取到别人写的jar包,同时自身也能成为资源 构建生命周期:默认每个阶段干一件事,通过插件可以实现在一个时期干多件事,同时会产生不同产物(jar包,代码,XML...) |
作用
1、管理jar包,解决jar包间的冲突(jar包:为java的一种文档格式,类似ZIP,为压缩java的文件包。) 2、统一了开发结构,提供了统一标准的项目结构 3、提供标准、跨平台(window-->Linux)的自动化项目构建方式 |
基础概念
1、仓库
- 存储各类jar包
自己电脑存储资源的仓库,资源源于私服或中央仓库
远程仓库:1、中央仓库:由maven团队维护,储存所有资源 2、私服:团队/公司范围内的仓库,资源源于中央仓库,同时也用于存储具有版权的资源,不对外共享。
2、坐标
- 用于管理众多的jar包,唯一识别jar包,组成如下:
groupId:组织ID(域名反写,org.mybatis)
artifactId:项目ID(模块名称:CRM,SMS)
Version:版本号
3、依赖
- 使用其他的jar包文件,自己写的资源也能成为别人的依赖
依赖传递:依赖具有传递性,分为直接与间接依赖
依赖传递冲突:路径优先:层级越浅优先级越高。
声明优先:同级被依赖时,配置靠前的生效,
特殊优先:同配置不同版本,后配置的生效
依赖作用范围:默认任何地方都能使用,scope标签设定其作用范围
主代码(main文件夹)测试代码(test文件夹)打包(package指令)
4、插件与生命周期
maven生命周期:1、clean:清理工作。 2、default:核心工作 编译测试打包部署。3、site:产生报告,发布站点
用phase标签规定执行到那个阶段时,会先执行之前的所有阶段
插件:与生命周期进行绑定,使得到对应得生命周期执行对应的插件功能。 默认maven在每个生命周期上有自己预设的功能,可以通过插件自定义其他功能 |
二、使用maven
安装及配置
maven属绿色软件,解压即安装。 注意3.6.1以上版本和idea产生冲突
配置环境变量:(在配置好java的基础上)
1、新建 变量名:MAVEN_HOME,变量值:maven所在路径
2、编辑Path–> 新建%MAVEN_HOME%\bin
最后在dos窗口输入mvn验证
配置settings文件
- 目的: 1.让jar包下载到本地仓库的指定位置,2.加快jar包下载速度
本地仓库配置
maven --> conf --> setting.xml --> settings标签
默认位置: | Default: ${user.home}/.m2/repository
自定义位置: D:\maven\repository
远程仓库配置:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
idea中设置maven
每创建一个新的project都需配置maven
maven项目工程目录
web的在main下多一个webapp
注意:如果为空白文件夹,需右键文件夹将其变成对应功能的更目录