今天,我们将学习
生成是将源代码文件转换为软件工件以在计算机上运行的过程。此过程通常由构建工具(控制其他程序的程序)管理。
Maven是Java项目中最流行的事实上的构建和管理工具。Maven 基于项目对象模型 (POM) 的概念,它有助于从中心信息自动管理项目的生成、文档和报告。
多年来,Maven变得非常流行,它定义了用于构建软件的通用接口。Maven实现了可以从Maven存储库中检索的插件。
简而言之,Maven是一个用于构建和管理基于Java的项目的工具,使Java开发人员的工作变得更加容易。
Maven 为许多任务提供支持,包括:
从头开始轻松构建 Java 项目,无需编写脚本
轻松添加 JAR 和项目依赖项
访问项目信息,例如日志文档、单元测试、依赖项列表等。
更新 JAR 和依赖项的中央存储库。
将 Java 项目与控制系统集成
当项目具有许多依赖项或项目依赖项版本经常更新时,Maven 生成工具是理想的选择。它也非常适合持续构建、集成和测试,或者当您需要从源代码生成文档时。
优点:
Maven可以通过读取文件自动添加所有项目依赖项。pom
在文件中添加依赖项非常容易。pom
Maven 可以轻松地在不同的环境中启动项目,而无需处理注入、构建等。
缺点:
Maven 必须与 IDE 的 Maven 插件一起下载
只能将现有依赖项添加到项目中
现在我们知道了Maven是什么以及它是如何工作的,让我们了解这个构建工具最显着的功能。我们将在本文后面更详细地分解这些内容。
POM :项目对象模型 (POM) 文件是包含项目和配置信息的 XML 文件。Maven POM文件用于执行命令。
#依赖项和存储库:依赖项是外部 Java 库,而存储库是打包的 JAR 文件的目录。Maven repository.
构建插件:构建插件以执行项目的特定目标。这些将添加到 POM 文件中。Maven提供标准插件,或者您可以实现自己的插件。
生命周期、阶段和目标:构建生命周期由多个构建阶段组成,这些阶段只是一系列项目目标。生成生命周期称为 Maven 命令。
构建配置文件:生成配置文件是一组配置值,允许您使用不同的配置进行构建。您可以使用配置文件的元素将构建配置文件添加到 POM 文件。
Maven 插件
Maven可以接受各种插件来执行任务。由于Maven的核心很小,因此插件对于利用此工具的智能至关重要。插件只是实现逻辑以在构建过程中执行各种任务的代码。
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 支持构建生命周期,这是一组用于构建项目的有序操作。构建生命周期由构建阶段组成,每个阶段都有插件目标,这些目标在阶段执行时执行。
为了更好地理解这一点,让我们看一个例子。干净的生命周期包括:
pre-clean
clean
post-clean
生命周期的各个阶段按顺序执行,这意味着将首先执行、执行第二个阶段,最后执行。pre-cleancleanpost-clean
如果我们使用 在 EmptyProject 中运行清理阶段,我们可以使用该命令指定阶段。当我们执行该阶段时,如果前一阶段有任何插件目标,它也将执行。mvn cleanmvnclean
Maven 中的存储库包含构建工件和依赖项。在软件开发中,工件是指在过程中生成的对象,如设计文档、数据模型和工作流图。
Maven存储库有两种主要类型:
本地存储库:Maven 运行并捕获远程下载的目录
远程存储库:任何其他类型的存储库。例如,由第三方设置的存储库或公司内的 HTTP 服务器。
一般来说,除了清理之外,本地存储库可以单独保留。您将需要下载远程存储库,这些存储库在声明依赖项时触发。
默认情况下,Maven 将从中央存储库下载。
下载Maven非常容易。首先验证您是否安装了 Java。检查是否设置了 Java 环境变量。从那里,从官方网站下载Maven。
您可以从系统中的任何位置解压缩 zip,并将 bin 目录添加到 PATH 环境变量和系统变量中。
从那里,然后运行命令。正确的安装将打印以下行:cmdmvm -v
接下来要学习的高级 Maven 概念
您现在应该对Maven是什么以及如何在Java项目中使用它有一个深刻的了解。Maven 可以使您的构建过程更加轻松,并自动执行耗时的任务。但是Maven还可以为您提供更多。
接下来您应该学习的高级Maven概念是:
Maven 中的依赖关系管理和作用域
插件管理
梅文超级聚甲醛
Maven 中的聚合
要开始使用这些高级概念并更多地练习我们今天所学的知识,请查看 Educateative 的课程使用 Maven 构建 Java 项目。这个独特的课程提供了易于遵循的动手浏览器内练习,以教授 Maven 概念,如插件、目标、依赖项等。