Apache Maven 教程: Java 构建自动化工具

今天,我们将学习

1. maven是什么

2. maven特征

3. maven插件

4. mavenPOM

5. maven生命周期

6. Maven 存储库

7. 如何安装 Maven

8.接下来要学习的高级 Maven 概念

什么是Maven

生成是将源代码文件转换为软件工件以在计算机上运行的过程。此过程通常由构建工具(控制其他程序的程序)管理。

Maven是Java项目中最流行的事实上的构建和管理工具。Maven 基于项目对象模型 (POM) 的概念,它有助于从中心信息自动管理项目的生成、文档和报告。

多年来,Maven变得非常流行,它定义了用于构建软件的通用接口。Maven实现了可以从Maven存储库中检索的插件。

简而言之,Maven是一个用于构建和管理基于Java的项目的工具,使Java开发人员的工作变得更加容易。

Maven 为许多任务提供支持,包括:

从头开始轻松构建 Java 项目,无需编写脚本

轻松添加 JAR 和项目依赖项

访问项目信息,例如日志文档、单元测试、依赖项列表等。

更新 JAR 和依赖项的中央存储库。

将 Java 项目与控制系统集成

何时使用Maven

当项目具有许多依赖项或项目依赖项版本经常更新时,Maven 生成工具是理想的选择。它也非常适合持续构建、集成和测试,或者当您需要从源代码生成文档时。

Maven 优点和缺点

优点:

Maven可以通过读取文件自动添加所有项目依赖项。pom

在文件中添加依赖项非常容易。pom

Maven 可以轻松地在不同的环境中启动项目,而无需处理注入、构建等。

缺点:

Maven 必须与 IDE 的 Maven 插件一起下载

只能将现有依赖项添加到项目中

Maven的特征

现在我们知道了Maven是什么以及它是如何工作的,让我们了解这个构建工具最显着的功能。我们将在本文后面更详细地分解这些内容。

POM :项目对象模型 (POM) 文件是包含项目和配置信息的 XML 文件。Maven POM文件用于执行命令。

#依赖项和存储库:依赖项是外部 Java 库,而存储库是打包的 JAR 文件的目录。Maven repository.

构建插件:构建插件以执行项目的特定目标。这些将添加到 POM 文件中。Maven提供标准插件,或者您可以实现自己的插件。

生命周期、阶段和目标:构建生命周期由多个构建阶段组成,这些阶段只是一系列项目目标。生成生命周期称为 Maven 命令。

构建配置文件:生成配置文件是一组配置值,允许您使用不同的配置进行构建。您可以使用配置文件的元素将构建配置文件添加到 POM 文件。


Maven 插件

Maven可以接受各种插件来执行任务。由于Maven的核心很小,因此插件对于利用此工具的智能至关重要。插件只是实现逻辑以在构建过程中执行各种任务的代码。

一些最常见的插件是:

Compiler Plugin:包含编译逻辑

Jar Plugin:包含创建 jar 的逻辑

Surefire Plugin:包含执行单元测试的逻辑

Maven插件由作为工作单元的目标组成。目标是我们想要对由POM文件定义的项目执行的操作。查看此图以了解这些组件如何交互:


Maven POM

Maven 项目由 POM 文件(项目对象模型)描述,该文件是 Java 项目的声明性描述。POM是一个XML文件,用于定义项目的唯一Maven坐标,依赖项,所需的插件,参数等。

调用时,Maven 会在当前目录结构中查找 POM 文件。没有它,将抛出错误。然后,Maven读取POM,收集配置信息并执行目标。

可以在 POM 中指定的一些配置包括项目依赖项、可以执行的插件或目标、构建配置文件等。

您还可以指定其他信息,例如项目版本、描述、开发人员和邮件列表。

让我们看一下 POM 文件的最小版本。

<project>

    <modelVersion>4.0.0</modelVersion>

    <groupId>io.datajek</groupId>

    <artifactId>empty-project</artifactId>

    <version>1</version>

</project>

该文件包含最少的项目描述,没有依赖项或插件。如果在包含上述 POM 文件的目录中运行,您将看到成功的生成。mvn install

我们有几个元素用于创建此文件:

项目:新项目的根元素

型号我们建议使用 4.0.0 版版本

组标识:这是项目组的唯一 ID

artifactId:这给出了一个项目名称

版本:保存项目的版本号

其他元素包括依赖项、名称、范围和打包。

Maven 生命周期

Maven 支持构建生命周期,这是一组用于构建项目的有序操作。构建生命周期由构建阶段组成,每个阶段都有插件目标,这些目标在阶段执行时执行。

为了更好地理解这一点,让我们看一个例子。干净的生命周期包括:

pre-clean

clean

post-clean

生命周期的各个阶段按顺序执行,这意味着将首先执行、执行第二个阶段,最后执行。pre-cleancleanpost-clean

如果我们使用 在 EmptyProject 中运行清理阶段,我们可以使用该命令指定阶段。当我们执行该阶段时,如果前一阶段有任何插件目标,它也将执行。mvn cleanmvnclean

Maven 存储库

Maven 中的存储库包含构建工件和依赖项。在软件开发中,工件是指在过程中生成的对象,如设计文档、数据模型和工作流图。

Maven存储库有两种主要类型:

本地存储库:Maven 运行并捕获远程下载的目录

远程存储库:任何其他类型的存储库。例如,由第三方设置的存储库或公司内的 HTTP 服务器。

一般来说,除了清理之外,本地存储库可以单独保留。您将需要下载远程存储库,这些存储库在声明依赖项时触发。

默认情况下,Maven 将从中央存储库下载。

如何安装 Maven

下载Maven非常容易。首先验证您是否安装了 Java。检查是否设置了 Java 环境变量。从那里,从官方网站下载Maven。

您可以从系统中的任何位置解压缩 zip,并将 bin 目录添加到 PATH 环境变量和系统变量中。

从那里,然后运行命令。正确的安装将打印以下行:cmdmvm -v


接下来要学习的高级 Maven 概念

您现在应该对Maven是什么以及如何在Java项目中使用它有一个深刻的了解。Maven 可以使您的构建过程更加轻松,并自动执行耗时的任务。但是Maven还可以为您提供更多。

接下来您应该学习的高级Maven概念是:

Maven 中的依赖关系管理和作用域

插件管理

梅文超级聚甲醛

Maven 中的聚合

要开始使用这些高级概念并更多地练习我们今天所学的知识,请查看 Educateative 的课程使用 Maven 构建 Java 项目。这个独特的课程提供了易于遵循的动手浏览器内练习,以教授 Maven 概念,如插件、目标、依赖项等。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容