Maven for Eclipse 第一章 ——Maven的介绍

  最近深陷与一个无比垃圾的项目无法自拔,好久没有更新文章了。今天简单介绍一下 Maven 在 Eclipse 中的使用。文章的内容几乎出于《Maven for Eclipse》一书,此书言简意赅,实用性很强。

  首先,Maven 是一个软件项目管理和程序理解的工具,一般来说,软件项目管理包括规划,组织,管理资源池,形成资源评估等。简单来说,Maven是一个全面的方法对应用模式的过程构建基础设施,它主要有如下目标:

  • 简化程序的构建流程
  • 提供统一的构建系统
  • 提供质量项目信息
  • 提供了项目最佳实战的指导
  • 提供了透明的方式迁移新特性

  为了实现上述目标,Maven提供了一组构建标准,工件库模型,一个引擎,描述项目,和一个标准的生命周期构建、测试,和部署项目工件。

  1.Maven 的原则

    Maven 的原则主要有以下几点:

    • 约定大于配置。Maven定义了默认的项目结构和构建一个开发生命周期用来减轻开发负担。通过指定一个公开定义的模型,使项目便于理解。
    • 声明式执行。Maven定义了一个项目构建的生命周期,包括一系列的阶段,这些阶段由plugin goal 组成。plugin goal可以包括声明pom文件来定制一个项目的执行。
    • 重用性。Maven建立与可重用性。建立和执行声明在一个项目中可以使用不同的项目。Maven也很容易创建一个组建并整合到多个项目中。
    • 清晰的依赖关系。Maven负责依赖管理,从而减少开发人员的负担。不同的冲突处理依赖关系处理得不错。
    • 关注程序开发。标准的项目布局和构建生命周期,不需要开发构建;主要应该集中在项目的构建。

  2.Maven 的组建架构

    Maven 由下面几个不同的组建构建而成:

        2.1 Plexus 容器

          Plexus 是一个 ICO 容器,提供了面向组件编程的方式去构建模块,重用的组建可以很容易地用来组装何重用。它支持如下的一些特性。

        • 组件生命周期
        • 组建一致性策略  
        • 嵌套的容器
        • 组件配置
        • 自动织入
        • 组件依赖
        • 许多依赖注入技术,包括构造方法注入,setter 方法注入,私有属性 注入。  

          更多信息请访问:http://plexus.codehaus.org/.

        2.2 Wagon

           Maven Wagon 是一个传输的抽象用在 Maven artifact 和 仓库处理的代码中。Wagon 定义了统一的API,当前有如下供应者。

        • File
        • HTTP
        • HTTP lightweight
        • FTP
        • SSH/SCP
        • WebDAV

          更多信息请访问:https://maven.apache.org/wagon/.

        2.3 Maven Doxia

          Doxia是内容生成框架,为用户提供了强大的技术来生成静态内容和动态内容。Doxia还用于基于web的发布上下文环境生成静态网站,还可以合并到动态内容生成系统,如博客、wiki和内容管理系统.

          更多信息请访问:https://maven.apache.org/doxia/.

        2.4 Modello

          Maodllo 组件在 Maven 中用来生成不同类型的 artifact 在构建时根据数模模型的引用。

        • 数据模型的 Java POJO类型
        • Java POJO 转换成 XML
        • XML 转换成 Java POJO
        • 数据模型的 XDOC 文档
        • XML schema 验证 XML 内容是否匹配数据模型

          更多内容请访问:http://maven.apache.org/maven-1.x/plugins/modello/.

       2.5 Maven SCM

        这个组件提供了常用的 API 来执行源代码管理操作,以下类型是被 SCM 所支持的。

        • Bazaar
        • CVS
        • Git
        • Jazz
        • Mercurial
        • Perforce
        • StarTeam
        • Subversion
        • CM energy

        更多信息请访问:http://maven.apache.org/scm/.

原文地址:https://www.cnblogs.com/IcanFixIt/p/5797256.html