问题
maven是什么?在使用过maven一段时间后我有了这样的问题,在进行软件开发的过程中,接触到更多的maven的功能就是作为构建工具使用。而maven作为构建工具仅仅是其主要的功能之一。
查阅资料
为了了解maven,笔者通过浏览Apache官网:maven是一个Yiddish word寓意知识的积累者,起初只是作为一种尝试,就是简化项目的构建过程,因为软件开发的过程中构建过程是一个很复杂的过程,那个时候构建工程师还是一个很重要的职位,而项目都有自己的ant构建文件,都各不相同,这样就导致开发者对构建后的项目理解就会很慢,maven希望建立项目的标准方法,对项目的构建有明确的定义,并使项目信息发布简单,多个项目共享jar文件 的方法,于是maven就演变成了现在的用于构建和管理人和基于java的项目的工具。
maven的目标
maven主要的目标是让软件开发者在最短的时间内了解开发工作的完整状态。使构建的过程更加容易,提供统一的构建系统,提供优质的项目信息等。
什么是maven
在Apache上看到了这个问题,并且文中提出了如下不完全的理解,maven是具有如下功能,但是不仅仅是这些功能:
- Maven是一个站点和文档工具
- Maven扩展Ant,让您下载依赖关系
- Maven是一组可重用的Ant脚本
maven采用微内核的设计,通过插件机制实现各种功能,maven的核心不是项目构建,主要功能是解析xml文档、
管理项目周期、管理项目插件。maven将其他的功能都交给了maven插件。从Apache下载的maven不会打包等功能。
所以第一次使用maven的时候需要联网的状态使maven能及时的下载到他的插件,maven的这种机制会使得maven的
安装包变得很小。
maven的第二个特点就是他的约定优于配置。就是说,系统、类库和框架都有一个默认值。比如说目录位置的配
置约定等。
maven维护了一个项目模型,定义项目的描述信息和项目的各种属性,比如说版本信息和各种属性等。总结
总结来看,maven是一个十分强大的项目管理和构建工具,感兴趣值得深入学习。