优秀的项目构建及管理工具-Maven
apache Maven官网:http://www.maven.apache.org.
你是否早已厌倦了日复一日的手工构建工作?你是否对各个项目风格迥异的构建系统感到恐惧?Maven——这一Java社区事实标准的项目管理工具, 能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它 来构建项目并促进团队交流,每天都有数以万计的开发者在访问中央仓库以获取他们需要的依赖。
Maven是优秀的构建工具。
前面介绍了Maven的用途之一是服务于构建,它是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。 我们不需要也不应该一遍又一遍地输入命令,一次又一次地点击鼠标,我们要做的是使用Maven配置好项目,然后输入简单的命令(如mvn clean install),Maven会帮我们处理那些烦琐的任务。Maven是跨平台的,这意味着无论是在Windows上,还是在Linux或者Mac上,都 可以使用同样的命令。
Maven不仅仅是构建工具,还是一个依赖管理工具和项目信息管理工具,能帮我们自动下载构件及所依赖的jar包。
总所周知,几乎任何Java应用都会借用一些第三方的开源类库,这些类库都可通过依赖的方式引入到项目中来。随着依赖的增多,版本不一致、版本冲 突、依赖臃肿等问题都会接踵而来。手工解决这些问题是十分枯燥的,幸运的是Maven提供了一个优秀的解决方案,它通过一个坐标系统准确地定位每一个构件 (artifact),也就是通过一组坐标Maven能够找到任何一个Java类库(如jar文件)。Maven给这个类库世界引入了经纬,让它们变得有 秩序,于是我们可以借助它来有序地管理依赖,轻松地解决那些繁杂的依赖问题。
Maven还能帮助我们管理原本分散在项目中各个角落的项目信息,包括项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等。这些 微小的变化看起来很琐碎,并不起眼,但却在不知不觉中为我们节省了大量寻找信息的时间。除了直接的项目信息,通过Maven自动生成的站点,以及一些已有 的插件,我们还能够轻松获得项目文档、测试报告、静态分析报告、源码版本日志报告等非常具有价值的项目信息。
Maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源类库。通过一些Maven的衍生工具(如Nexus),我们还能对其进行快速地搜索。只要定位了坐标,Maven就能够帮我们自动下载,省去了手工劳动。
使用Maven还能享受一个额外的好处,即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置。
Maven定义
说了这么久,或许有些笼统,那么Maven究竟是啥样的一个东东呢?其实简单总结来说:
Apache Maven是一个基于项目对象模型(POM),可以管理一个项目的构建、报告和文档信息的软件项目管理工具。
Maven的特点及必要性
众所周知,能担任项目构建角色的工具比比皆是,如:Ant,Make,IDE开发工具。
Maven也并不是java领域唯一的项目构建解决方案。那么为啥我们还需要Maven呢?到底又有哪些可取之处?
首先,IDE并不是万能,均需要人手配合操作,并且编译,测试,代码生成等工作是相对独立的,很难一键统一完成所有的工作,而且由开发人员手工操作 在很大程度上就降低了开发效率且容易出错。很难统一所有IDE的配置,这将会出现在A IDE上能正常使用,当迁移到B IDE时则出现失败。
其次,Make通过一系列目标和依赖将整个构建过程串联起来,同时利用本地命令完成每个目标的实际行为。Make的强大之处在于它可以利用所有系统的本地命令,尤其是UNIX/Linux系统,丰富的功能、强大的命令能够帮助Make快速高效地完成任务。
但是,Make将自己和操作系统绑定在一起了。也就是说,使用Make,就不能实现(至少很难)跨平台的构建,这对于Java来说是非常不友好的。此外,Makefile的语法也成问题,很多人抱怨Make构建失败的原因往往是一个难以发现的空格或Tab使用错误。
Ant需要开发人员显式的指定每一个目标以及完成该目标所需要执行的任务、针对每一个项目,开发者都需要重新编写这一过程,这里其实隐含着很大的重 复。Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的,开发者只需要声明项目的基本元素,Maven 就执行内置的、完整的构建过程。这在很大程度上消除了重复。另外,Ant是没有依赖管理的,开发人员不得不去人工管理依赖,而Maven则认为依赖管理是 理所当然的,并且提供了一个中央仓库,用户无需配置任何就可以直接享有,并自动为项目下载获取依赖的构建组建或jar包。
总结:
1,Maven使项目构建过程更简单。
2,Maven提供统一跨平台的构建系统。
3,Maven提供优质项目信息管理及中央仓库。
4,Maven提供依赖管理功能,能自动下载及获取项目所依赖的构建组建及jar包等。
5,Maven提供简单的方式对项目的更新和部署管理。
myeclipse 安装maven插件:
maven插件地址:http://m2eclipse.sonatype.org/sites/m2e
浙公网安备 33010602011771号