Maven实战学习笔记 1.Maven介绍

来源:互联网 发布:qq视频聊天录像软件 编辑:程序博客网 时间:2024/03/29 14:50

1.1 何为Maven

    作为apache组织的一个十分成功的开源项目,Maven主要服务于基于java平台的项目构建,依赖管理和项目信息管理。

1.1.1 什么是构建

    对源代码进行编译、单元测试、生成文档、打包和部署等工作,即为构建。

1.1.2  Maven是优秀的构建工具

        Maven的用途之一就是服务于构建、它是一个非常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包部署。
我们要做的是使用Maven配置好项目,然后输入简单的命令(如:maven clean install),Maven会帮我们处理那些繁琐的任务。
        Maven是跨平台的,无论是在linux上或windows上都可以使用同样的命令。
        Maven最大化的消除了构建的重复,抽象了构建申明周期,并且为绝大部分的构建任务提供了已实现的插件。最简单的例子就是测试,我们没必要
告诉Maven去测试,更不需要告诉Maven如何运行测试,只需要遵循Masuven的约定编写好测试用例,当我们运行构建的时候,这些测试便会自动运行。
        Maven抽象了一个完成的构建生命周期模型,这个模型吸取了大量其他的构建脚本和构建工具的有点,总结了大量项目的实际需求。
        Maven帮助我们标准化构建过程。在Maven前,十个项目可能有十种构建方式,有了maven之后,所有项目的构建命令都简单一致,节省了学习成本,
而且有利于促进项目团队的标准化。
        综上所述,Maven作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供一致的接口,标准化构
建过程,这些足以使它成为优秀的、流行的构建工具。

1.1.3 Maven不仅仅是构建工具

         Maven不仅是构建工具,还是一个依赖管理工具和项目信息管理的工具。它提供了中央仓库,能帮我们自动下载构件。
         在这个开源的时代,几乎任何java应用都会应用第三方的开源类库,将类库通过依赖的方式导入到项目中来。随着依赖的增多,版本不一致、版本冲突、
依赖臃肿的问题就会接踵而来。手工解决这些问题十分枯燥的,幸运的是Maven提供了一个优秀的解决方案,它通过坐标系统准确的定位每一个构件(artifact),
也就是通过一组坐标Maven能够找到任何一个Java类库(如jar文件)。Maven给这个类库的世界引入了经纬,让他们变得有秩序,于是我们可以借助它来有序
地管理依赖,轻松地解决那些繁杂的依赖问题。
        Maven还能帮我们管理原本分散在项目各个角落的项目信息,包括项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等,这些微小
的变化看起来不起眼,但却在不知不觉中节省了大量的寻找信息的时间。除了直接的项目信息,通过Maven自动生成的站点,以及一些已有的插件,我们还能
够轻松获取项目文档、测试报告、静态分析报告、源码版本日志报告等非常具有价值的项目信息。
        Maven还为全世界java开发者提供了一个免费的中央仓库,在其中机会可以找到任何的流行的开源类库。通过一些Maven的衍生工具(如Nexus),我们
还能对其进行快速的搜溹。只要定位坐标,Maven就能帮我们自动下载,省去手工劳动。
        使用Maven还能享受一个额外的好处,即Maven对于项目目录结构、测试用例命名方式都有既定的规则,只要尊徐这些成熟的规则,用于在项目间切换
的时候就免去了额外的学习成本,可以说是约定由于配置(Convenrion Over Configuration)。
1 0