maven概述及原理

1.Maven概述及原理

1.1.概述

Maven是一个项目管理工具,他包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义生命周期阶段中插件目标的逻辑。java

Maven是基于约定优于配置的思想来管理代码目录的。Maven的核心插件使用了一组通用的约定,以用来编译源代码,打包可分发的构件,生成Web站点,以及许多其余过程。约定的好处是使事情简单化。网络

默认约定架构

默认源码:${basedir}/src/main/javaeclipse

资源文件:${basedir}/src/main/resourcesmaven

测试代码:${basedir}/src/main/test工具

JAR文件存放在:${basedir}/target/classes测试

 

Maven有不少优势包括依赖管理和经过插件重用通常的构建逻辑,可是它成功的最核心的缘由是他定义了构建软件的通常接口。ui

  Maven的核心其实不作什么实际的的事情,除了解析一些XMl文档,管理生命周期与插件以外,他什么都不懂。Maven被设计成将主要的职责委派给一组Maven插件,这些常见能够影响Maven生命周期,提供对目标的访问。绝大多数Maven的动做发生于Maven插件的目标,如编译源代码,打包二进制代码,发布站点和其余构建任务。spa

 Maven维护了一个项目的模型。这个基于每个项目定义的模型实现了一下特征:插件

·依赖管理

因为项目是根据一个包含组织标识符,构建标识符和版本的惟一的坐标定义的。项目间可使用这些坐标来声明依赖。

·远程仓库

能够经过定义在项目对象模型(POM)中的坐标来建立Maven构建的仓库。

·全局性构建逻辑重用

Maven插件被编写成和项目模型对象(POM)一块儿工做,他们没有被设计成操做某一个已知位置的特定文件(此点可与Ant对比)。一切都被抽象到模型中,插件配置和自定义行为都在模型中进行。

·工具可移植性/集成

Maven标准化了项目模型对象(POM)模式,可以使用IDE很容易生成有模型生成项目文件。

·便于搜索和过滤构建

1.2.原理

Maven的基本原理很简单,采用远程仓库和本地仓库以及一个相似build.xml的pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,并且避免每一个应用都去拷贝jar。如图1。同时它采用了如今流行的插件体系架构,只保留最小的核心,其他功能都经过插件的形式提供,因此maven下载很小,在执行maven任务时,才会自动下载须要的插件。

图1

Maven有一个官方的仓库,是一个微内核,经过网络将须要的文件下载到本地,经过官方仓库将相应的类库进行统一管理。另外因为插件的易开发性,如今有了很是多的可供选择的插件,如与eclipse结合的插件,与Test相关的插件。

相关文章
相关标签/搜索