maven是什么,简单来说,它是一个构建和管理你工程的一个工具
它的主要目的是让你在短时间内就能清晰的了解一个完整的工程。
maven主要想处理的是以下几个方面
1、使构建过程变得简单
2、提供一致的构建系统
3、提供高质量的工程信息
4、提供最好的开发实践指导
5、便于迁移到新的环境中
定义,执行,测试是一个通常的mave的构建周期
同时maven希望能够给发布管理和问题追踪提供帮助
有人认为
1、maven只是一个网站和文档工具
2、继承了ant和让你去下载依赖包
3、maven就是一系列ant脚本的集合
但是这其实是有很大差别的,maven的目的在构建工程的同时能够有效的对工程进行管理和追踪。
它的设计是灵活,可扩展,能够适用于不同的工程。但是它也不会为了迎合所有的需求而改变它要达到的目的。
所以,如果你想使用maven,但是你又想弄一个结构比较独特的工程,那么,抱歉,你可能不能使用maven的一些特性。
maven的关键特征:
1、对简单工程的配置有最佳的实践:能够在几秒钟中内就能得到一个新的工程或者模块
2、使用maven构建的工程都有统一的使用习惯,所以一个新人了解一个项目不需要花费太多的时间
3、能够在同一时间里在多个工程中工作
4、有巨大的不断增长的类库和对元数据的别致的使用方式,和非常方便的,实时的得到大量开源项目最后发行版本
5、能够方便的使用Java或者脚本为maven写第三方插件
6、通过少量的配置就能够使用maven新的特性
7、maven的依赖管理是使用ant任务来完成的
8、基于模型的构建:Maven能够构建任意输入类型的工程,例如jar,war,以及源代码工程,而在大多数情况下,构建这多的类型,并不需要maven写额外的脚本。
9、能够产生清晰和详细的关于工程信息的文档
10、发布管理和源代码的发行管理:并不需要额外的配置,maven已经继承了源码库,如cvs和能够基本特定的标签进行发布管理,maven能够将这些发布到另外的位置给其他项目使用。它能输出一个包含工程文档的单独的jar文件或者源码包或者压缩文件。
11、依赖管理:maven鼓励使用同j一个jar的中心库和其他依赖项,maven对你的工程客户端进行配置使得你的工程能够从一个jar的中心库下载构建工程的jar包,这有利于jar包的重复使用和工程之间共享jar包,这也能够保证工程的向下兼容性。