Maven学习笔记

​1.Maven-简介​   2.Maven-安装和配置​   3.Maven-POM文件说明​   4.Maven-坐标​   5.Maven-依赖详解​  6.Maven-仓库​  7.Maven-生命周期和插件​  8.Maven-聚合​   9.Maven-继承和反应堆​ 10.Maven-使用NEXUS创建私服​  11.Mavne-配置从NEXUS下载构件和为项目配置独立仓库​   12.Maven-使用Hudson进行持续集成及系统配置​  13.Maven-创建Hudson任务​  14.Maven-Hudson监视任务、用户管理、工作目录


Maven的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。如下图是简单的 pom.xml文件

3 Maven-POM文件说明_eclipse




1:代码的第一行是XML头,指定了该xml文档的版本和编码方式。紧接着是project元素,project是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素,虽然这些属性不是必须的,但使用这些属性能够让第三方工具(如ide中的XML编辑器)帮助我们快速编辑POM。

上图所示的代码中最重要的是包含了 groupId,artifactId和 version的三行。这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom或者war都是以基于这些基本的坐标进行区分的。

modelVersion:指定了当前POM模型的版本,对于Maven 2及Maven3来说,它只能是4.0.0。

groupId:定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。

artifactId:定义了当前Maven项目在组中唯一的ID,例如本屌的“user_center”指定了该项在整个“ly”中的作用。

version:指定了本项目的当前的版本-0.0.1-SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着你项目的发展,version会不断更新。

name:声明了一个对于用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个POM声明name,以方便信息交流。


Maven它能让项目对象模型最大程度地与实际代码相独立,我们称之为解耦,或者正交性。这在很大程度上避免了java代码和POM代码的相互影响。比如当项目需要升级版本时,只需要修改POM,而不需要更改Java代码;而在POM稳定之后,日常的Java代码开发工作基本不涉及POM的修改。