Maven教程
Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。
本教程将介绍如何使用Maven在Java开发,或任何其他的编程语言的任何项目。
读者
本教程是为初学者准备的,帮助他们了解Maven工具的基本功能。完成本教程后,希望能够熟悉使用Apache Maven。
先决条件
假设需要使用Maven来处理企业级Java项目开发。如果有软件开发的知识,如:Java SE,Java EE的开发和部署过程经验,对学Maven将有一定的帮助。
Maven是什么?
Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
Maven提供了开发人员的方式来管理:
-
Builds
-
Documentation
-
Reporting
-
Dependencies
-
SCMs
-
Releases
-
Distribution
-
mailing list
概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。
Maven历史
Maven最初设计,是以简化Jakarta Turbine项目的建设。在几个项目,每个项目包含了不同的Ant构建文件。 JAR检查到CVS。
Apache组织开发Maven可以建立多个项目,发布项目信息,项目部署,在几个项目中JAR文件提供团队合作和帮助。
Maven目标
Maven主要目标是提供给开发人员:
-
项目是可重复使用,易维护,更容易理解的一个综合模型。
-
插件或交互的工具,这种声明性的模式。
Maven项目的结构和内容在一个XML文件中声明,pom.xml 项目对象模型(POM),这是整个Maven系统的基本单元。有关详细信息,请参阅Maven POM的部分.
约定优于配置
Maven使用约定优于配置,这意味着开发者不需要创建构建过程。
开发人员不必为每一个配置详细信息。Maven提供一个合理的默认项目。创建一个Maven 项目时,Maven使用默认的项目结构。开发者只需要把相应的文件以及在pom.xml 定义相关配置。
作为一个例子,下表列出了项目的源代码文件,资源文件和配置的默认值。假设${basedir}表示项目位置:
Item | 默认 |
---|---|
source code | ${basedir}/src/main/java |
resources | ${basedir}/src/main/resources |
Tests | ${basedir}/target/classes |
Complied byte code | ${basedir}/src/test |
distributable JAR | ${basedir}/target |
为了建设项目,Maven提供了开发人员生命周期的目标和项目的依赖(依赖于Maven插件能力,并在其默认约定)。在大部分的项目管理都建立相关的任务和维护Maven插件。
开发人员可以构建任何给定的Maven项目,而不需要了解插件。有关详细信息,请参阅Maven 插件部分。