Maven整体介绍

◆介绍Maven的核心特性
◆掌握Maven的依赖管理
◆掌握Maven的打包方式

Maven介绍

Maven并不是什么复杂的东西,其只是帮我我们解决实际开发中的一些现实问题。

痛点1:在软件行业中,IDE(集成开发环境)有很多种,比如Eclipse,IDEA等;不同的IDE所创建的java项目,其格式、风格都是有差异的,意味着Eclipse开发的工程,放到IDEA中是无法被加载的,发过来也是一样的;

痛点2:Java是开源的,每个人都在为Java添砖加瓦;在这个背景下,每一个领域,每一个技术都有很多的第三方厂商为他实现,对于这些厂商所提供的的jar包或者是war包,我们从哪儿下载啊?自然可以去厂商的官网下载,但是如果当前是一个比较庞大的工程,需要使用十几门不同的技术,当把不同很多的不同厂商的jar放在一起的时候,难免会出现因为版本所带来的兼容性问题。

痛点3:在现在的开发中,Java项目输出的格式要么是jar包(应用在标准的java项目中),要么是war包(应用于发布在web服务器中);对于这两种格式的文件,如何对其进行打包?

Maven核心特性有效帮我们解决以上三个痛点

● 项目设置遵循统一的规则:工程的结构有一个明确的标准,哪个文件夹放源代码,哪个文件夹放配置文件,哪个文件夹放网页,其都提前规定好了;Apache对Maven进行了大力的宣传,同时也联合几家大的IDE厂商对Maven的标准工程进行支持,逐渐Maven就使用开来;

Maven最大好处是:开发一次,无论是Eclipse还是IDEA等可以对其进行良好的支持。

● 强大的依赖管理:Maven提供了一个中央仓库,所有的jar包和组件都在中央仓库中进行了保存;而且这些jar包和组件也提供自动更新的功能。

● 可扩展的插件机制:Maven支持插件技术。比如,如果发现Maven中的哪个功能不好用了,或者不支持了,自己写一个插件,或者使用其他人写好的插件,加进来就可以了。

然后大概看一下Maven的安装与配置,有个大概印象即可 我们配置好开发环境就需要导入Maven依赖管理 maven依赖管理的具体功能?

● Maven利用dependency(依赖)自动下载,管理第三方jar;

● 在pom.xml文件中配置项目依赖的第三方组件;即,我们只需要在pom.xml中配置好依赖关系,Maven就会自动的从远程仓库(或称中央仓库)中下载这些jar包;

● Maven会自动将依赖从远程仓库下载到本地仓库,并在工程中引用;

● 远程仓库:就是放在远程服务器上的,那个jar的仓库;本地仓库:就是本地的一个目录;把从远程仓库下载的jar包保存在本地的一个目录中,这样下一次再使用某个jar的时候,就不用从远程下载,直接从本地拿就可以了;

所谓依赖就是帮助我们自动下载、管理jar的功能。

具体使用:在pom.xml配置文件中,只需要增加如下的标签信息,将第三方的groupiId,artifactId,version写好,其就会自动的下载了。

在引入依赖的过程中,maven具体都做了什么?

假设一个工程中使用了maven,maven在项目启动的时候,会对pom.xml进行加载,分析里面有哪些dependency依赖,然后其便会在本地仓库(本机的某一个目录中)中去查找这些依赖文件是否存在,这些依赖文件就是通常使用的jar包,本地仓库一般是.m2\repository目录,如果在maven在查找本地仓库的时候,发现某一个jar在本地仓库中没有,maven会自动的向中央仓库(Apache的maven仓库)发起下载的请求,将中央仓库中的jar包下载到本地仓库,之后再由maven去加载刚下载的文件,于是在项目列表中就会有这个依赖了 具体可以看看Maven本地仓库与中央仓库

对于项目来说,不可能一直在IDE中进行编码,最好要得到对应的产出物。

对于java工程来说,要打成jar包;对于javaweb工程来说,要打成war包;

之前都是使用IDE自带的功能来得到jar或者是war;但是,对于Maven来说,它提供了更加灵活、通用的方案:Maven插件技术

拓展: Maven构建生命周期 Maven属性管理