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 SSH初步整合

  • qq_28042463
  • qq_28042463
  • 2016年05月09日 18:57
  • 1154

Maven的安装和本地仓库初始化

先到Maven官网下载安装包:http://maven.apache.org/
  • zhangzeyuaaa
  • zhangzeyuaaa
  • 2014年09月30日 16:11
  • 12549

Maven的安装和本地仓库初始化

安装MavenMaven依赖于JDK,安装maven之前请确认JDK已安装好! 到Maven官网下载安装包:http://maven.apache.org,这里下载windows版本,是一个压缩文件...
  • xxl6097
  • xxl6097
  • 2015年12月12日 12:33
  • 2742

maven的初步讲解

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

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

在写本文的时候先来说明一下maven依赖的各种范围的意思 compile(编译范围) compile 是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的...
  • u013410747
  • u013410747
  • 2016年01月10日 08:39
  • 1597

Shiro整合SSH开发1:整合Shiro+Struts2+Spring+Hibernate 初步整合配置【基于Maven】

我看的视频教程中使用的是SSM(Spring+SpringMVC+mybaties),但是我目前用的是SSH,特别是Struts2,在学习的时候特别不方便,后面在网络上面查找对应的文章,写的东西都不够...
  • nthack5730
  • nthack5730
  • 2016年03月31日 18:06
  • 14974

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

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

SSH深度历险(四) Maven初步学习

刚刚接触,还需在项目中,逐步深入的理解,站在巨人的肩膀上学习,成长还是比较快的;知识的学习都是通过对比,在gxpt中很多内容都是对比NET的知识学习,理解的也深刻、效果不错;抽象的能力的培养尤其重要,...
  • lishehe
  • lishehe
  • 2014年06月12日 08:11
  • 3387

Maven初步学习--下载安装配置

今天用到了maven就学习了一下maven的简单安装过程。遇到了一个小小的问题。分享一下 1.下载maven 官网:http://maven.apache.org/download.cgi 2...
  • pengdingxu10
  • pengdingxu10
  • 2015年12月25日 00:38
  • 240

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
  • 2525
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Maven 初步
举报原因:
原因补充:

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