- Maven教程
- Maven - 主页
- Maven - 概述
- Maven - 环境设置
- Maven-POM
- Maven - 构建生命周期
- Maven - 构建配置文件
- Maven - 存储库
- Maven - 插件
- Maven - 创建项目
- Maven - 构建和测试项目
- Maven - 外部依赖项
- Maven - 项目文档
- Maven - 项目模板
- Maven - 快照
- Maven - 构建自动化
- Maven - 管理依赖关系
- Maven - 部署自动化
- Maven - Web 应用程序
- Maven - Eclipse IDE
- Maven - NetBeans
- Maven-IntelliJ IDEA
- Maven 有用资源
- Maven - 问题与解答
- Maven - 快速指南
- Maven - 有用的资源
- Maven - 讨论
Maven - 概述
什么是马文?
Maven 是一个项目管理和理解工具,为开发人员提供了完整的构建生命周期框架。由于 Maven 使用标准目录布局和默认构建生命周期,开发团队几乎可以立即自动化项目的构建基础设施。
在多个开发团队环境的情况下,Maven可以在很短的时间内建立起按标准工作的方式。由于大多数项目设置都很简单且可重用,Maven 在创建报告、检查、构建和测试自动化设置时使开发人员的生活变得轻松。
Maven 为开发人员提供了管理以下内容的方法 -
- 构建
- 文档
- 报告
- 依赖关系
- 单片机
- 发布
- 分配
- 邮件列表
总而言之,Maven 简化并标准化了项目构建过程。它无缝地处理编译、分发、文档、团队协作和其他任务。Maven 提高了可重用性并负责大部分与构建相关的任务。
Maven的演变
Maven 最初是为了简化 Jakarta Turbine 项目的构建过程而设计的。有多个项目,每个项目包含略有不同的 ANT 构建文件。JAR 已签入 CVS。
Apache 小组随后开发了Maven,它可以一起构建多个项目、发布项目信息、部署项目、跨多个项目共享 JAR 并帮助团队协作。
客观的
Maven 的主要目标是为开发人员提供以下功能 -
一个全面的项目模型,可重用、可维护且更易于理解。
与此声明性模型交互的插件或工具。
Maven项目的结构和内容在一个xml文件pom.xml中声明,称为项目对象模型(POM),它是整个Maven系统的基本单元。在后面的章节中,我们将详细讲解POM。
约定优于配置
Maven 使用约定优于配置,这意味着开发人员不需要自己创建构建过程。
开发人员不必提及每一个配置细节。Maven 为项目提供了合理的默认Behave。创建 Maven 项目时,Maven 会创建默认的项目结构。开发者只需要相应地放置文件,不需要在pom.xml中定义任何配置。
作为示例,下表显示了项目源代码文件、资源文件和其他配置的默认值。假设${basedir}表示项目位置 -
物品 | 默认 |
---|---|
源代码 | ${basedir}/src/main/java |
资源 | ${basedir}/src/main/resources |
测试 | ${basedir}/src/测试 |
编译后的字节码 | ${basedir}/目标 |
可分发的 JAR | ${basedir}/目标/类 |
为了构建项目,Maven 为开发人员提供了提及生命周期目标和项目依赖项(依赖于 Maven 插件功能及其默认约定)的选项。许多项目管理和构建相关的任务都是由 Maven 插件维护的。
开发人员可以构建任何给定的 Maven 项目,而无需了解各个插件的工作原理。我们将在后面的章节中详细讨论 Maven 插件。
Maven 的特点
遵循最佳实践的简单项目设置。
所有项目的使用一致。
依赖管理,包括自动更新。
一个庞大且不断增长的图书馆资源库。
可扩展,能够轻松地用 Java 或脚本语言编写插件。
无需额外配置即可即时访问新功能。
基于模型的构建- Maven 能够将任意数量的项目构建为预定义的输出类型,例如 jar、war、元数据。
项目信息的一致站点- 使用与构建过程相同的元数据,maven 能够生成一个网站和一个包含完整文档的 PDF。
发布管理和分发发布- 无需额外配置,maven 将与您的源代码控制系统(例如 CVS)集成并管理项目的发布。
向后兼容性- 您可以轻松地将项目的多个模块从旧版本的 Maven 移植到 Maven 3。它也可以支持旧版本。
自动父版本控制- 无需在子模块中指定父版本进行维护。
并行构建- 它分析项目依赖关系图并使您能够并行构建计划模块。使用此功能,您可以实现 20-50% 的性能提升。
更好的错误和完整性报告- Maven 改进了错误报告,它为您提供了 Maven wiki 页面的链接,您可以在其中获得错误的完整描述。