Maven 初步

原创 2016年05月30日 11:42:16

1.概述
Maven是一个构建工具,服务与构建.使用Maven配置好项目后,输入简单的命令,如:mvn clean install,Maven会帮我们处理那些繁琐的任务.
Maven是跨平台的.
Maven最大化的消除了构建的重复.
Maven可以帮助我们标准化构建过程.所有的项目都是简单一致的,简化了学习成本.
总之,Maven作为一个构建工具,不仅帮我们自动化构建,还能抽象构建过程,提供构建任务实现.他跨平台,对外提供一致的操作接口,这一切足以使他成为优秀的,流行的构建工具.
但是Maven不仅是构建工具,他还是一个依赖管理工具和项目信息管理工具.他还提供了中央仓库,能帮我们自动下载构件.
使用Maven还能享受一个额外的好处,即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置(Convention Over Configuration)。


2.对比

Maven,IDE,Mark,Ant

a.IDE:基本上所有的主流IDE都集成了Maven,我们可以在IDE中方便的运行Mave执行构建.IDE依赖大量的手工操作。编译、测试、代码生成等工作都是相互独立的,很难一键完成所有工作。手工劳动往往意味着低效,意味着容易出错很难在项目中统一所有的IDE配置,每个人都有自己的喜好。也正是由于这个原因,一个在机器A上可以成功运行的任务,到了机器B的IDE中可能就会失败。
所以,要合理使用IDE,不过多依赖.Maven是专家.

b.Make也许是最早的构建工具,具体不详,没用过,可以不了解.Make的强大之处在于它可以利用所有系统的本地命令,尤其是UNIX/Linux系统,丰富的功能、强大的命令能够帮助Make快速高效地完成任务。
但是,Make将自己和操作系统绑定在一起了。也就是说,使用Make,就不能实现(至少很难)跨平台的构建,这对于Java来说是非常不友好的。此外,Makefile的语法也成问题,很多人抱怨Make构建失败的原因往往是一个难以发现的空格或Tab使用错误。


c.Ant是意指“另一个整洁的工具”(Another Neat Tool),它最早用来构建著名的Tomcat,其作者James Duncan Davidson创作它的动机就是因为受不了Makefile的语法格式。我们可以将Ant看成是一个Java版本的Make,也正因为使用了Java,Ant是跨平台的。此外,Ant使用XML定义构建脚本,相对于Makefile来说,这也更加友好。
和Make一样,Ant也都是过程式的,开发者显式地指定每一个目标,以及完成该目标所需要执行的任务。针对每一个项目,开发者都需要重新编写这一过程,这里其实隐含着很大的重复。Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的,开发者只需要声明项目的基本元素,Maven就执行内置的、完整的构建过程。这在很大程度上消除了重复。
Ant是没有依赖管理的,所以很长一段时间Ant用户都不得不手工管理依赖,这是一个令人头疼的问题。幸运的是,Ant用户现在可以借助Ivy管理依赖。而对于Maven用户来说,依赖管理是理所当然的,Maven不仅内置了依赖管理,更有一个可能拥有全世界最多Java开源软件包的中央仓库,Maven用户无须进行任何配置就可以直接享用。

3.Maven与极限编程
极限编程(XP)是近些年在软件行业红得发紫的敏捷开发方法,它强调拥抱变化。
首先看一下Maven如何帮助XP团队实现一些核心价值:
?简单。Maven暴露了一组一致、简洁的操作接口,能帮助团队成员从原来的高度自定义的、复杂的构建系统中解脱出来,使用Maven现有的成熟的、稳定的组件也能简化构建系统的复杂度。
?交流与反馈。与版本控制系统结合后,所有人都能执行最新的构建并快速得到反馈。此外,自动生成的项目报告也能帮助成员了解项目的状态,促进团队的交流。


Maven几乎能够很好地支持任何软件开发方法。

例如,在传统的瀑布模型开发中,项目依次要经历需求开发、分析、设计、编码、测试和集成发布阶段。从设计和编码阶段开始,就可以使用Maven来建立项目的构建系统。在设计阶段,也完全可以针对设计开发测试用例,然后再编写代码来满足这些测试用例。然而,有了自动化构建系统,我们可以节省很多手动的测试时间。此外,尽早地使用构建系统集成团队的代码,对项目也是百利而无一害。最后,Maven还能帮助我们快速地发布项目。



注:

Maven两个最酷的特点是jar repositories和项目站点生成。Jar repositories是包含jar文件的本地或远程站点。当你在建立时间证明jar文件和POM的依赖关系时,Maven将自动将jar文件所需版本下载到本地存储库。这个特点可以让你更加轻松地构建项目。项目站点生成目标则是创建一个项目的专业网站,包括强调语法的源代码的链接、代码格式、javadoc、单体测试等等。


参考书籍(推荐大家购买实体书):《Maven实战》(国内首本Maven著作)(Maven的安装、配置及使用入门)

Maven实战  免积分 下载链接 :

Maven实战_.7z   http://download.csdn.net/detail/u013630349/9535150


相关文章推荐

maven的初步讲解

  • 2017年08月02日 14:40
  • 1.11MB
  • 下载

Hadoop学习初步:Maven构建Hadoop项目

转自:http://blog.fens.me/hadoop-maven-eclipse/ 前言 Hadoop的MapReduce环境是一个复杂的编程环境,所以我们要尽可...

2013年9月1日、Come On|Maven初步认识

结束了2天的断网时间、有开始了新的生活、看看课表、有2门考试课、ERP和电子商务、课程还算轻松、 怎么利用课余时间做一些对自己更有益的事、成了现在目标和重点、 不能再像从前一样、随遇而安、随波逐流、跟...

Maven初步了解

什么是maven?   Maven是一个用于项目构建的工具,通过它便捷的管理项目的生命周期。即项目的jar包依赖,开发,测试,发布打包。   下面我自己总结一下它的几个特点,看了这些特点,也许对m...

【工具】Maven初步入门

Maven作为一个自动化的测试工具,能对项目进行有效的管理。废话不多说,接下来我们来安装Maven和实现它的几个简单的小例子。...

Maven的初步使用以及命令行工具

在写本文的时候先来说明一下maven依赖的各种范围的意思 compile(编译范围) compile 是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的...

maven 配置文件初步了解

http://maven.apache.org/POM/4.0.0 "      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "  ...
  • amork
  • amork
  • 2011年11月09日 14:18
  • 2506

2013年8月28日、PS初步入门|and|Maven了解

今儿高兴、 财神爷生日、Ivan老师新婚开乐哈、 因帮奥迪师兄Ps照片知道自己这方面的不足、今天和静师姐学习ps图片的基础入门、 哈哈、静师姐的大学母校也在长春、很亲切、我们聊了很多、也知道了、...

maven初步学习

1、什么是maven         项目管理和构建工具         它包含了:         一个项目对象模型 (Project Object Model),         一组标准...

maven学习总结初步

Maven 是 Apache 组织下的一个跨平台的项目管理工具,它主要用来帮助实现项目的构建、测试、打包和部署。Maven 提供了标准的软件生命周期模型和构建模型,通过配置就能对项目进行全面的管理。它...
  • xby1993
  • xby1993
  • 2014年04月14日 14:22
  • 1236
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Maven 初步
举报原因:
原因补充:

(最多只允许输入30个字)