1.0 Maven介绍

首先简单介绍一下POM。POM 代表工程对象模型。它是使用 Maven 工作时的基本组件,是一个 xml 文件。它被放在工程根目录下,文件命名为 pom.xml。POM 包含了关于工程和各种配置细节的信息,Maven 使用这些信息构建工程。

POM 包含了关于工程和各种配置细节的信息,Maven 使用这些信息构建工程。
• 所有的 POM 文件需要 project 元素和三个必须的字段:groupId, artifactId,version。
• 在仓库中的工程标识为 groupId:artifactId:version
• POM.xml 的根元素是 project,

Maven 是一个项目管理和构建自动化工具。Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,它本身来说是一个跨平台的管理工具。

 

2.0 jar 包的来源

本地仓库
Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下

第三方仓库
第三方仓库,又称为内部中心仓库,也称为私服
私服:一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可作为公用类库镜像缓存,减少在外部访问和下载的频率。(使用私服为了减少对中央仓库的访问
中央仓库
Maven内置了远程公用仓库:http://repo1.maven.org/maven2
这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主
工程依赖的jar包如果本地仓库没有,默认从中央仓库下载

获取的过程是:

首先检查本地仓库    —(没有的话)-》 --(若配置了第三方仓库)-》 从第三方仓库中查找-》—(没找到)-》进入中央仓库查找

                         —(没有配置第三方仓库) -》进入中央仓库查找

3.0 Maven 缺点

1. Maven的配置一点也不连贯。一会引用classpath的相对路径,一会用相对于磁盘的绝对路径,一会又用运行于JVM之上的Maven的系统属性。

2. 有些东西在pom中根本无法配置。比如:Maven仓库、服务器这些都是在setting.xml里面,当一个新的代理被加到构建服务器里,还是要手动合并必要的配置信息到原有的settings.xml中

3. 公用仓库下载缓慢、 不稳定,并且不包含一些构件的最新版本

4. Maven不仅仅解决你的项目的包依赖,它还自动解决自己带的插件的包依赖。Maven实例偶然会下载不兼容的东西