Apache Maven 介绍

陈科肇

================

1.什么是Maven

2.Maven的约定配置

3.基于Maven插件的全局性重用

4.一个“项目”的概念模型

=====================================================================

1.什么是Maven

Maven 是一个项目管理工具,包含了一个项目对象模型(Project Object Model | POM),一组标准集合,一个项目周期(Project Lifecycle),一个依赖管理系统(Dependency Manaagement System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你可以一个明确的项目对象来描述的项目,然后就可以用Maven的横切逻辑了,这些逻辑来自一组共享的(或自定义的)插件。

其含括了构件工具的功能。

2.Maven的约定配置

Maven在默认的情况下,源代码是放在src/main/java,资源文件是放在src/main/resources,而测试则是放在src/main/test目录下。如果项目会产生一个jar文件,则Maven会把你想要编译好的字节码放到target/calsses,并在target创建一个可发布的jar文件。Maven的约定配置不仅仅是约定了目录的结构位置,Maven的核心插件使用了一组通用的约定,可以用来编译源码,打包可分发的构件,生成web站点,及其的其它过程。

如果你遵循这些默认的约定,Maven只需要几乎为零的工作--仅仅将你的源代码放到正确的目录下。

3.基于Maven插件的全局性重用

Maven 的核心其实不做什么实际的事情,除了解析一些 XML 文档,管理生命周期与插
件之外,它什么也不懂。Maven 被设计成将主要的职责委派给一组 Maven 插件,这些
插件可以影响 Maven 生命周期,提供对目标的访问。绝大多数 Maven 的动作发生于
Maven 插件的目标,如编译源码,打包二进制代码,发布站点和其它构建任务。你从
Apache 下载的 Maven 不知道如何打包 WAR 文件,也不知道如何运行单元测试,Maven
大部分的智能是由插件实现的,而插件从 Maven 仓库获得。事实上,第一次你用全新
的 Maven 安装运行诸如 mvn install 命令的时候,它会从中央 Maven 仓库下载大部
分核心 Maven 插件。这不仅仅是一个最小化 Maven 分发包大小的技巧,这种方式更能
让你升级插件以给你项目的构建提高能力。Maven 从远程仓库获取依赖和插件的这一事
实允许了构建逻辑的全局性重用。


4.一个“项目”的概念模型

Maven 维护了一个项目的模型,你不仅仅需要把源码编译成字节码,你还需要开发软
件项目的描述信息,为项目指定一组唯一的坐标。你要描述项目的的属性。项目的许可
证是什么?谁开发这个项目,为这个项目做贡献?这个项目依赖于其它什么项目没有?
Maven不仅仅是一个“构建工具”,它不仅仅是在类似于 make 和 Ant 的工具的基础上
的改进,它是包含了一组关于软件项目和软件开发的语义规则的平台。这个基于每一个
项目定义的模型实现了如下特征:
依赖管理--
由于项目是根据一个包含组标识符,构件标识符和版本的唯一的坐标定义的。项
目间可以使用这些坐标来声明依赖。
远程仓库--
和项目依赖相关的,我们可以使用定义在项目对象模型(POM)中的坐标来创建
Maven 构件的仓库。
全局性构建逻辑重用--
插件被编写成和项目模型对象(POM)一起工作,它们没有被设计成操作某一个
已知位置的特定文件。一切都被抽象到模型中,插件配置和自定义行为都在模型
中进行。
工具可移植性/集成--
像 Eclipse,NetBeans,和 InteliJ 这样的工具现在有共同的地方来找到项目
的信息。在 Maven 出现之前,每个 IDE 都有不同的方法来存储实际上是自定义
项目对象模型(POM)的信息。Maven 标准化了这种描述,而虽然每个 IDE 仍然
继续维护它的自定义项目文件,但这些文件现在可以很容易的由模型生成。
便于搜索和过滤构件--
像 Nexus 这样的工具允许你使用存储在 POM 中的信息对仓库中的内容进行索引
和搜索。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值