一、简介
1.什么是Maven?
- Maven翻译为“专家“, ”内行”的意思,是著名Apache公司下基于Java开发的开源项目。
- Maven项目对象模型(POM)是一个项目管理工具软件,可以通过简短的中央信息描述来管理项目的搭建,报告和文档等步骤。
- Maven是一个项目管理的工具,可以对项目进行构建、依赖的管理。
2.Maven的作用
项目开发不仅仅是写写代码而已,期间会伴随着各种必不可少的事情要做,下面列举几个感受一下:
- 我们需要引用各种jar 包,尤其是比较大的工程,引用的ar 包往往有几十个乃至上百个,每用到一种jar 包,都需要手动引引入工程目录,而且经常遇到各种让人抓狂的jar包冲突,版本冲突。
- 我们写好的lava 文件,可是计算机只懂0和1,需要将它编译成二进制字节码。目前这项工作可以由各种集成开发工具帮我们完成Eclipse、IDEA等都可以将代 码即时编译。当然,也可以用记事本来敲代码,然后用avac命令一个个地去编译。
- 世界上没有不存在 bug 的代码,为了追求美为了减少bug,因此写完了代码,我们还要写一些单元测试,然后一个个的运行来检验代码质量。
- 再优雅的代码也是要出来卖的。我们后面还需要把代码与各种配置文件、资源整合到一起,定型打包,如果是 web 项目,还需要将之发布到服务器,供用户使用。试想,如果现在有一种工具,可以把你从上面的繁琐工作中解放出来,能帮你构建工程,管理 ar包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目,生成 Web 站点,你会心动吗?Maven 就可以解决上面所提到的这些问题
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源((ar包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的、统一的项目结构
3. 普通Java项目与使用Maven的区别
使用Maven公用jar包
程序员A开发一个模块需要1、3、5三个jar包;程序员B开发一个模块需要1、5、8、9四个jar包
合并代码----1、3、5、1、5、8、9出现两个人所使用的版本冲突的问题
- 本地仓库:在自己电脑上安装了maven,指定一个文件夹存放所有的jar包
- 中央仓库:是maven把全球所有你能想到和想不到的所有jar包在服务器上放了一份,叫做中央库 从中央仓库下的jar包会放入本地仓库;中央仓库是个国外网站,可能有的公司会限制访问,阿里巴巴在国内搭建一个仓库,里面有所有maven仓库的镜像,国内程序员需要什么jar包都可以去阿里的镜像网站进行下载
- 私服:就是公司的服务器;有些公司只能上内网,开发项目时需要jar包如何下载?公司专门搞一套电脑可以连接互联网,需要的jar包从这台电,不能跟互联网交互脑下载,这台电脑没有再去中央仓库下载,那么公司这台唯一可以连接外网的你电脑主机就是私服
4.maven的生命周期
Maven拥有三套相互独立的生命周期,分别是clean、default和site.
5.maven的作用域
- compile 默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。
- test scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。
- runntime runntime表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已,说实话在终端的项目(非开源,企业内部系统)中,和compile区别不是很大。Oracle jdbc驱动架包就是一个很好的例子,一般scope为runntime。
- provided provided意味着打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。
- system 从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用。
二、maven配置
1.下载压缩包,解压到指定位置;
2.在系统环境变量中配置maven的bin路径;
3.配置一下maven的本地仓库位置和阿里云镜像
三、IDEA(2020)创建maven项目
1.创建项目,选择maven模板和骨架;
2.设置项目的基本信息后创建一个maven的web项目:
3.补充完善项目目录结构: main 包含java、resources、webapp三个目录
4.在pom.xm1中引用所需要的jar包坐标;
5.在右侧的maven工具窗口中执行刷新,自动下载所有的iar包到本地仓库中
6.模拟测试springmvc框架的运行;
IDEA配置本地的maven
1.File--->settings,在搜索框中搜索maven
2.选择本地maven的安装路径和conf中配置信息至比IDEA配置本地maven完成