简介
- 无论瀑布式开发,敏捷式开发 都适合
- 主要服务基于java平台的项目构建,依赖管理和项目信息管理
- 项目构建:Maven可以帮助我们自动化构建过程,从清理,编译,测试,生成报告,打包,部署的过程,Maven只需一条指令(mvn clean install),Maven 可以完成执行
- 有了Maven后,所有项目的构建都是一致的,有利于项目的标准化
- Maven 跨平台,提供了一致的接口
- Maven提供了中央仓库,能够让我们自动下载构件(Maven为java类库世界提供了坐标,可以通过坐标定位到任何一个jar包)
项目构建工具
- Ant构建: 最早
- Maven 构建:
- 第一次支持了从网上下载的功能(不需要手动添加jar包,只需放下载链接即可),采用xml配置格式,专注依赖管理 - Gradle:
- 继承了Ant的灵活和Maven的生命周期管理,被google作为了Android管理工具,区别不采用xml配置文件格式,采用DSL格式,脚本更加简洁
Maven的四大特性
依赖管理系统
- 为java 引入了一个新的依赖管理系统jar包管理,jar包(由 groupid,artifactid,version组成的,可以唯一的标识一个依赖)
- groupid 定义当前Maven项目隶属的实际项目-公司名称,由于Maven中模块的概念,因此一个实际项目往往被分成很多模块,比如Spring是一个实际项目,对应的Maven模块有很多,如Spring-core,Spring-webmvc等
- artifactid : 该元素定义项目中的一个实际项目名,使用实际项目名作为 artifactid 的前缀,如spring-bean,spring-mvc等
- version:定义maven项目所处的版本
多模块构建
- dao,service,controller将项目分解为多个模块
一致的项目结构
- Maven在设计之初,制定了一套项目目录结构作为标准的java项目结构,解决不同ide带来的目录文件不一致的问题
一致的构建模型和插件机制
Maven的安装配置以及目录结构
Maven的安装配置
- 检查JDK版本
- 下载Maven
- 环境变量设置
- cmd 中检查
认识Maven目录结构
目录 | 目的 |
---|
根目录 | 存放pom.xml 和所有 子目录 | 根目录/ src / main /java | 项目的java源代码 | 根目录/src/ main/ resources | 项目的资源,如 property 文件 | 根目录/ src / test/ java | 项目的测试集,如Junit代码 | 根目录/src/test/resources | 测试使用的资源 |
~/.m2
- ~ 指用户目录
- 在cmd中运行,mvn help:system ,执行后所有的Maven构建都会被下载待到此文件的respository文件下
- 上述会下载到c盘
- 修改maven->conf->setting.xml 文件 默认下载位置和 下载源
|