Maven学习笔记(1)-Maven简介

  Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”、“内行”。作为Apache组织的一个颇为成功的开源项目, Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理 。无论是小型项目还是企业级应用,Maven都能适用。

  在Maven之前,存在着诸如Make和Ant等构建工具。其中Make由一个名为Makefile的脚本文件驱动,该文件必须使用Make自己定义的语法格式。由于Make和操作系统绑定,使得Make可以利用所有系统的本地命令完成每个项目的实际构建行为。但这也限制了Make的跨平台性,对Java这种跨平台语言极不友好。因此后来又有了另一个构建工具: Ant,它不是“蚂蚁”的意思,而是“Another Neat Tool(另一个整洁的工具)”的简称。 Ant可以看做是Java版本的Make,正是因为使用了java,Ant是跨平台的。和Make类似的是,Ant在构建时也需要有一个构建脚本build.xml。

  虽然Ant实现了跨平台性,适用于java开发,但Ant没有提供依赖管理功能。另外,Ant和Make一样,都是过程式的,开发者需要在构建脚本中(Makefile和build.xml)显示地书写将执行的目标以及完成该目标所需要执行的任务。所以针对不同的项目,开发者都要开发一个特定的构建脚本,不仅难度大并且其中包含了大量的重复劳动。

  相较于Make和Ant,Maven有着自己独特的优势。
  首先,Maven可以帮助程序员自动化构建:从清理、编译、测试到生成报告,再到打包和部署。程序员不再需要为项目书写构建脚本,也不用在IDE中一次次点击鼠标(效率太低),程序员们要做是使用Maven配置好项目、编写源代码,然后输入简单的命令(如mvn clean install),Maven会帮我们完成繁琐的构建任务。

  其次,Maven是跨平台的,对外提供了统一的操作命令。这也意味着无论在Windows上,还是在Linux、Mac上,都可以使用同样的命令。减少了学习成本。

  另外,在这个开源的时代,几乎所有的java应用都借助并依赖第三方的开源类库。随着依赖增多,就出现版本不一致、版本冲突、依赖臃肿等问题,手工解决这些问题,不仅枯燥而且低效。幸运的是,Maven提供了依赖管理功能,它通过一个坐标系统准确定位每一个构建(artifact,常见的构建如:jar、war)。(坐标系统在另一篇中介绍吧)

  最后,在Maven出现之前,Java 项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在哪里,没有一个权威的规范。而Maven对项目的目录结构、测试用例命名方式等内容都做了规定。使用Maven管理的项目必须满足这些规则。用户在不同项目间切换的时候,免去了额外学习成本,即约定优于配置(Convention Over Configuration)。

  综上。正是由于Maven吸收了其他构建工具和构建脚本的特点,总结大量项目的实际需要,大大降低了构建项目的难度,才发展成为了时至今日最为流行的构建工具。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值