Maven简介(Maven是什么)
简介
Maven,在意第绪语中意为对知识的积累。Maven最初用来在Jakarta Turbine项目中简化该项目的构建过程。Jakarta Trubine项目有多个工程,每个工程都有自己的多个Ant构建文件。每个工程的这些构建文件都只有一小部分不同,并且所有的Jar文件被使用CVS纳入了版本管理。我们想要实现一种标准方式去构建这些工程、明确定义这些工程的组成部分、简单的发布工程信息以及多个工程间共享Jar包。
就这样,一个能够构建和管理任何基于java的工程的工具诞生了。我们希望我们做的这些事情能够简化Java开发者日复一日的工作,并有助于他们对任何基于Java的项目的理解。
Maven的目标
Maven的主要目标是希望开发者能在最短的时间内理解开发的完整状态。为了达到这个目标,Maven在以下几个方面做出了努力:
- 简化构建过程
- 统一构建体系
- 提供高质量的项目信息
- 提供开发的最佳实践指南
- 实现透明的向新特性的迁移
简化构建过程
使用Maven不需要知道一些潜在的或底层的机制,Maven屏蔽了很多细节。
统一构建体系
Maven通过使用工程对象模型(project object model POM)以及一系列可共享的插件来构建工程。只要你熟悉了怎么构建一个Maven工程,你就自然知道了怎么构建所有的Maven工程。这种统一的构建体系可以节省大量的了解工程结构的时间。
提供高质量的项目信息
Maven提供了很多有用的工程信息,这些信息一部分来自于工程的POM文件,一部分来自原工程源码。Maven可以提供以下信息:
- 从源码控制处生成的修改日志文档
- 交叉引用源码
- 开发者邮件列表
- 项目依赖列表
- 包含覆盖率的单元测试报告
Maven改进了工程信息的提供,所有这些信息对Maven用户来说都是透明的。
Maven还允许其他人提供Maven插件来获取工程信息,与Maven获取的标准信息同样处理。这些都需要基于POM来完成。
提供开发的最佳实践指南
Maven致力于收集现有的开发的最佳实践原则,并以此来简化工程的开发。
例如:规范,执行,和单元测试报告是正常使用Maven构建周期的一部分。目前Maven中的单元测试最佳实践如下:
- 将测试源码放在一个单独的,但与主代码同级的位置
- 使用测试用例命名规范来定位和执行测试
- 让测试用例本身去设置测试环境,不要为了测试而专门构建环境
Maven 在工程的目录结构上也给出了许多最佳实践指南。遵守了这些工程目录结构指南后,如果你了解了这种目录结构,你也就会容易的了解其他所有遵循了这种目录结构的Maven工程。
实现透明的向新特性的迁移
Maven为使用者提供了一种简单的方式去更新他们已经install的工程,这使得用户可以获取到基于Maven对工程作出的任何变化。
基于以上原因,install新的工程、从第三方或Maven本身更新插件变得非常容易和常见。
Maven不是什么?
你或许听说过以下关于maven的描述:
- Maven是一个网站和文档工具
- Maven继承于Ant,可以让你下载工程依赖
- Maven是一系列可复用的Ant脚本的集合
Maven确实做了以上这些事情,这可以从“Maven是什么”一节中看到。但这些不是Maven仅有的特性,mavan的目标不止于此。
Maven确实鼓励最佳实践,但由于一些历史原因,我们对一些工程的实现可能没有遵循这些最佳实践。虽然Maven被设计为有弹性的,在一定程度上,为了满足不同工程的需要,为了达到所有的目标,我们做出了一些妥协,以使Maven能满足每一种情况。
如果你决定了使用Maven,但是你的工程目录结构与Maven推荐的不一样而你无法重新组织,你可能需要放弃一些Maven特性,不能完全的使用Maven了。
原文来自于Maven官网:What is Maven?
Maven简介(Maven是什么)的更多相关文章
- maven 简介 —— maven权威指南学习笔记(一)
maven是什么?有什么用? Maven是一个项目管理工具,它包含了 一个项目对象模型 (Project Object Model), 一组标准集合, 一个项目生命周期(ProjectLifecycl ...
- maven简介及基础使用
一.Maven简介 Maven可译为"知识的积累"."专家",主要服务于基于Java平台的项目构建.依赖管理和项目信息管理. 1.Maven-项目构建工具 ...
- maven 简介
本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与我交流任何关于本书的问题和关于Ma ...
- 学习笔记-[Maven实战]-第一章:Maven简介
Maven简介: Maven 可翻译为:知识的积累,也可以翻译为"专家"或"内行". Maven 是一个跨平台的项目管理工具,是Apache组织中一个很成功的开 ...
- (一)《Maven实战》读书笔记 —— Maven简介
第一章:Maven简介 一.何为Maven? Maven这个词可以翻译为"知识的积累",本书将介绍Maven这一跨平台的项目管理工具.作为Apache组织中的一个个颇为成功的开源项 ...
- [JavaEE] Maven简介
转载自:百度 http://baike.baidu.com/view/336103.htm?fr=aladdin 一.简介 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构 ...
- 【项目管理和构建】——Maven简介(一)
在现实的企业中,以低成本.高效率.高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的.当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等.如果你 ...
- 框架学习笔记之Maven简介和配置
一.什么是Maven?★Maven可翻译为“知识的积累”.“专家”.“内行”,它是一个跨平台的项目管理工具.★Maven提供了开发人员构建一个完整的生命周期框架,开发团队可以自动完成项目的基础工具建设 ...
- Maven学习笔记【1】 -- Maven简介
本文主要讲Maven的基础知识. 一 什么是Maven? Maven是一个项目管理工具.Maven提供了一个项目对象模型(POM)文件的新概念来管理项目的构建,相关性和文档.最强大的功能就是能够自动下 ...
随机推荐
- JS实现手机访问pc网址自动跳转到wap网站
之前写pc端直接跳转wap端一直是后端java写的,跟js一样都是根据navigator.userAgent来判断设备是电脑还是手机的,我知道这种前端也可已完成的功能,只是后台比较强势,本人本着以和为 ...
- springmvc文件下载之文件名下划线问题终极解决方案
直接上代码:Action中代码片段. @RequestMapping("download")public String download(ModelMap model, @Mode ...
- Spring Cloud Eureka 自我保护机制
Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 会将这些实例保护起来,让这些实例不会过期,但是在保护期内如果 ...
- mysql-5.7.18-winx64 免安装版配置
如题,最新的都是只有免安装版的,可以官网下载zip的压缩包. 下载后解压,如下 下面就开始配置 1.在path中添加环境变量 ;D:\coding\mysql-5.7.18-winx64\bin; ← ...
- [COGS 2258][HZOI 2015]复仇的序幕曲
Description 你还梦不梦痛不痛,回忆这么重你怎么背得动 ----序言 当年的战火硝烟已经渐渐远去,可仇恨却在阿凯蒂王子的心中越来越深 他的叔父三年前谋权篡位,逼宫杀死了他的父王,用铁血手腕平 ...
- [HAOI2006]数字序列
题目描述 现在我们有一个长度为n的整数序列A.但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列.但是不希望改变过多的数,也不希望改变的幅度太大. 输入输出格式 输入格式: 第一行包含一个数 ...
- POJ 2289(多重匹配+二分)
POJ 2289(多重匹配+二分) 把n个人,分到m个组中.题目给出每一个人可以被分到的那些组.要求分配完毕后,最大的那一个组的人数最小. 用二分查找来枚举. #include<iostream ...
- POJ 3415 不小于k的公共子串的个数
Common Substrings Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 9248 Accepted: 3071 ...
- hdu 4747 线段树
Mex Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submis ...
- dev gridcontrol 无法编辑 解决方案
1.确认表格打开编辑 gridView1.OptionsBehavior.Editable = True 2.确认列打开编辑 gridView1.Columns("Name").O ...