Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
(Apache Maven是一个软件项目管理和理解工具。基于项目对象模型思想,Maven能够管理一个项目的构建、报告和信息中心文档)
Maven 是一个项目管理和整合工具。做为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。不管是小型的开源类库项目,仍是大型的企业级应用;不管是传统的瀑布式开发,仍是流行的敏捷模式,Maven都能大显身手。java
Maven为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就可以自动完成工程的基础构建配置,由于Maven使用了一个标准的目录结构和一个默认的构建生命周期。apache
Maven可以帮助开发者完成如下工做:框架
总的来讲,Maven简化了工程的构建过程,并对其标准化。它无缝衔接了编译、发布、文档生成、团队合做和其余任务。Maven提升了重用性,负责了大部分构建相关任务。maven
Maven的主要目的是为开发者提供工具
Maven工程结构和内容被定义在一个xml文件中-pom.xml,是Project Object Model(POM)的简称,此文件是整个Maven系统的基础组件。ui
Maven使用约定而不是配置,意味着开发者不须要再本身建立构建过程。
开发者不须要再关心每个配置细节。Maven为工程提供了合理的默认行为。当建立Maven工程时,Maven会建立默认的工程结构。开发者只须要合理的放置文件,而在pom.xml中再也不须要定义任何配置。插件
下表展现了工程源码文件、资源文件的默认配置,和其余一些配置。假定${basedir}表示工程目录:code
配置项 | 默认值 |
---|---|
source code | ${basedir}/src/main/java |
resources | ${basedir}/src/main/resources |
Tests | ${basedir}/src/test |
Complied byte code | ${basedir}/target |
distributable JAR | ${basedir}/target/classes |
为了构建工程,Maven为开发者提供了选项来配置生命周期目标和工程依赖(依赖于Maven的插件扩展功能和默认的约定)。大部分的工程管理和构建相关的任务是由Maven插件完成的。orm
开发人员不须要了解每一个插件是如何工做的,就可以构建任何给定的Maven工程。详细内容参考Maven插件部分。xml
欢迎访问我的博客:http://www.ycyoes.com