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

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还能帮助我们快速地发布项目。

http://hi.baidu.com/echolxl2010/item/8a1981f0809a5e1bd7ff8ce3点击打开链接

Maven是什么,以及为什么要使用Maven相关推荐

  1. Maven学习总结(七)——eclipse中使用Maven创建Web项目

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(七)--eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Pr ...

  2. Maven实战(三)Eclipse构建Maven项目

    2019独角兽企业重金招聘Python工程师标准>>> 1. 安装m2eclipse插件     要用Eclipse构建Maven项目,我们需要先安装meeclipse插件     ...

  3. Maven学习总结(九)——使用Nexus搭建Maven私服

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要搭建nexus私服,原因很 ...

  4. idea添加maven libraries_使用IntelliJ IDEA创建一个Maven的Spring Boot项目

    关于maven的安装和配置参考: Maven 3.6.1的配置及验证 关于IntelliJ IDEA安装配置参考: IntelliJ IDEA的安装和配置 1.打开IntelliJ IDEA,选择&q ...

  5. Maven安装和配置及eclipse创建Maven项目

    提示:使用Maven需要先安装jdk. 下载安装Maven 一.下载最新版的Maven,下载地址:http://maven.apache.org/download.cgi 二.将Maven下载到E:\ ...

  6. 【MAVEN】如何在Eclipse中创建MAVEN项目

    目录结构: contents structure [+] 1,Maven简介 2,Maven安装 2.1,下载Maven 2.2,配置环境变量 2.3,测试 3,Maven仓库 3.1,Maven仓库 ...

  7. 5.Maven和Eclipse整合(两种方式进行插件的安装),Maven相关设置,Eclipse下创建Maven项目

     1  第一种方式是:在连网的情况下,通过在helpàInstall下安装. 新的地址是:http://download.eclipse.org/technology/m2e/releases 2 ...

  8. (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(七)--eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -& ...

  9. 构建maven项目插件_如何构建一个Maven插件

    构建maven项目插件 使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 今天尝试Okta. 由于其插件生态系统的普 ...

  10. maven项目 jetty_如何使用Java,Maven,Jetty创建Web应用程序项目

    maven项目 jetty 在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在一个名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编 ...

最新文章

  1. 张宁北大计算机系,同是北大出身,差距悬殊!张宁在山西坐冷板凳,祝铭震已坐稳首发...
  2. 数据挖掘学习笔记--决策树C4.5
  3. linux常用网络诊断命令,linux网络常用诊断工具
  4. ssd测试工具crystaldiskmark_使用SSD增强Ceph性能并对比测试
  5. 【推荐系统】深入理解YouTube推荐系统算法
  6. SQL调优(SQL TUNING)之远程支持完成性能大幅优化
  7. Android开发学习笔记:数据存取之File浅析
  8. 使用wordpress的心得
  9. 【MySQL】MySQL中的死锁
  10. 大数据时代移动营销的十大趋势
  11. 基于安卓的宠物店预约商城APP源码
  12. GPS经纬度转百度经纬度JAVA
  13. 电离层对高分辨率星载SAR成像的影响1——电离层的相关定义
  14. 金蝶中间层服务器组件注册使用信任方式,提示:用户名或密码错误
  15. 二十五、PHP内核探索:常量的实现 ☞ 脱离C语言和数学讨论底层都是耍流氓
  16. 一份软件工程行业生存指南
  17. BubbleGum96 开箱杂谈与软件资源
  18. 铁路警方启用AI眼镜,当场抓逃犯!外媒惊叹不已!
  19. 某大神网站发现2048一枚
  20. html5文档样式,jQuery HTML5文件上传美化插件jQuery.filer

热门文章

  1. fineprint key_FinePrint改变了我的打印方式。
  2. 爱人啊,我想带你去世界的任何一个地方--java篇
  3. android默认exported_Android activity exported属性理解
  4. 软件工程概论:软件开发的需求分析阶段为什么要用用例图来建模?
  5. win10系统可以做补丁服务器,win10补丁包怎么安装 win10补丁手动安装方法
  6. 怎样快速设置CorelDRAW中的出血线
  7. BZOJ4976: [Lydsy1708月赛]宝石镶嵌
  8. 怎样用c语言计算出自己的出生天数,新手编的小程序:计算年龄和出生后经历的天数的小程序...
  9. html隔离样式,html – 如何将div与公共CSS样式隔离?
  10. wordpress最佳架构_25个咖啡馆的最佳WordPress主题(2020)