在 Ubuntu 中安装 Maven2025年3月17日 | 阅读11分钟 什么是 Maven?Maven 是一个自动化构建工具,主要用于 Java 项目。它还可以用于构建和管理使用 Scala、Ruby、C# 等语言编写的项目。Maven 项目由 Apache 软件基金会托管,曾是 Jakarta 项目的一部分。 Maven 定义了软件构建的两个方面:软件如何构建及其依赖。与 Apache Ant 等早期工具不同,它对构建过程应用了约定。只需要描述例外情况。一个 XML 文件定义了要构建的软件项目及其对许多其他外部组件和模块的依赖、构建目录、顺序以及所需的插件。它提供了预定义的代码和打包。
Maven 的历史Maven 由 Jason van Zyl 创建,于 2002 年作为 Apache Turbine 的子项目启动。它于 2003 年被投票并采纳为 Apache 软件基金会的顶级项目。Maven 的发布 v1.0 是一个重要的里程碑,于 2004 年 7 月发布。在经过大约 6 个月的 Beta 测试周期后,Maven 2 于 2005 年 10 月宣布了 v2.0。Maven 3.0 于 2010 年 10 月发布,与 Maven 的第二版高度向后兼容。 2018 年,Maven 3.0 的信息开始流出。在经历了 8 个 Alpha 版本后,Maven 3.0 的第一个 Beta 版本于 2010 年 4 月发布。Maven 3.0 重构了核心项目构建器基础设施,提供了 POM 的基于文件的表示,并通过其内存对象表示进行了解耦。这增加了 Maven 3.0 的附加组件利用非 XML 的项目定义文件的可能性。建议的语言包括 Groovy、YAML 和 Ruby。
Maven 的互操作性针对 Java 的各种著名 IDE(集成开发环境)的附加组件提供了 Maven 与 IDE 的源代码编辑和构建机制工具的集成,允许 Maven 在 IDE 内部安排项目,并配置代码补全类路径,聚焦编译器错误等。
此外,这些附加组件还允许直接在 IDE 中使用 POM 或修改 POM 来确定项目依赖项的完整集合。当 IDE 不再执行编译时,一些 IDE 的内置功能将缺失。例如,Eclipse 的 JDT 可以在单个 Java 源文件被修改后重新编译它。许多 IDE 使用一组扁平的项目而不是 Maven 支持的文件夹层次结构进行操作。当在 IDE 中使用 Maven 时,这会使 SCM 系统的利用变得复杂。 Maven 的目标Maven 的主要目标是让开发人员在最短的时间内整合开发工作的全部状态。Maven 致力于达成此目标,涉及多个方面:
此外,第三方代码分析提供了 Maven 插件,它们会将报告包含在 Maven 提供的典型信息中。 Maven 的特点以下是 Maven 的一些重要特点:
Maven 的设计![]() 项目对象模型 (POM)一个项目对象模型用于处理一个项目的每个配置。基本配置涵盖项目名称、其依赖项以及它对其他项目的依赖。此外,还可以配置构建过程的单个阶段,这通过插件来实现。例如,可以使用编译器的 1.5 版 Java 来构造编译器插件进行编译,或者即使一些单元测试失败,也可以描述项目的打包。 大型项目应分为多个子项目和模块,每个模块都有自己的POM。然后,可以指定一个根 POM,从中可以使用一个命令编译所有模块。此外,POM 可以从任何其他 POM 继承配置。每个 POM 默认从其超级 POM 继承。超级 POM 提供默认配置,如默认插件、默认源目录等。 POM 是“Project Object Model”的缩写。它是 Maven 项目的 XML 表示,存储在名为 pom.xml 的文件中。一个项目包含配置文件、关联的开发人员、缺陷跟踪系统、许可证、组织、项目 URL、项目依赖项以及为代码提供生命力的所有其他小部分。它是与项目相关的所有内容的“一站式商店”。在 Maven 世界中,一个项目甚至不需要包含代码,只需要一个 pom.xml 文件。 Maven 坐标POM 是 Maven 允许的最低限度:groupId:artifactId:version 是所有必需的字段(但是,如果版本和 groupId 是从父级继承的,则不需要显式定义)。这三个字段非常像时间戳和地址的结合。它标记了存储库中的一个特定位置,就像一个坐标系统一样。
插件Maven 的大部分功能都在插件中。插件提供了一组可以通过 mvn [plugin-name] : [goal-name] 命令运行的目标。例如,可以通过执行 mvn compiler:compile 命令来编译 Java 项目,使用编译器的 compile-goal。 有许多 Maven 插件用于构建、测试、运行 Web 服务器、源代码管理、生成 Eclipse 项目文件等。这些插件在 pom.xml 文件的 一些基本插件默认添加到所有项目中,并具有合乎逻辑的默认设置。但是,如果软件项目的打包、测试和构建的原型构建顺序需要手动执行所有相应的目标,那将很不方便。
Maven 的生命周期概念解决了这个问题。 插件是扩展 Maven 的主要方式。集成 Maven 插件可以通过扩展 org.apache.maven.plugin.AbtractMojo 类来实现。 构建生命周期这是一个命名的阶段列表,可用于为目标执行排序。Maven 的标准生命周期之一是默认生命周期,它按特定顺序包含一些阶段,如下所述:
来自插件的目标可以与不同的生命周期阶段关联。例如,compiler:compile 目标默认与 compile 阶段关联,而 surefire:test 目标与 test 阶段关联。当运行 mvn test 命令时,Maven 会执行连接到所有阶段直到并包括 'test' 阶段的所有目标。 Maven 执行与 process-resources 阶段关联的 resources:resources 目标,然后是 compiler:compile 等,直到最后执行 surefire:test 目标。 此外,Maven 还包含用于清理项目和生成项目站点的标准阶段。如果清理是默认生命周期的一部分,项目将在每次创建时都被清理。这是不希望的,因此清理被提供了自己的生命周期。 依赖关系依赖管理是 Maven 的核心方面。Maven 的依赖处理机制围绕一个识别单个构件(如软件模型或库)的坐标系统进行组织。 在 Ubuntu 20.04 中安装 MavenApache Maven 是一个独特的、先进的项目构建工具,通常与 Java 相关。它是一个开源工具,使用包含 XML 文件的项目对象模型来存储项目的重要信息,最终包含与艺术项目、配置文件及其依赖项相关的信息。 为了有效地在 Ubuntu 20.04 版本上安装 Maven,我们将需要对 Linux 命令和工作原理有基本了解,能够识别 sudo 命令,并拥有 root 用户权限。该工具旨在通过有效地报告和记录核心项目信息来帮助用户构建项目。 Maven 被认为是管理 Java 项目的最佳工具。此外,它包含内置的对象命令,用于处理代码组合和包。 Maven 的安装过程Maven 的安装过程主要由三个基本步骤组成。在开始这三个步骤之前,我们可以利用 Maven 的所有优势来管理我们的 Ubuntu 系统上的 Java 项目。 步骤 1:包升级 步骤 2:Apache Maven 安装 步骤 3:验证 前提条件为了执行 Maven 命令,我们的服务器必须安装 Java,其中包含 JRE 和 JDK 开发工具包。如果我们的系统没有安装 Java,那么我们可以在终端窗口中运行以下命令: ![]() 我们还可以通过以下命令验证 Java 系统安装及其套件: ![]() 步骤 1:包升级首先,我们需要使用 sudo apt 命令更新现有包。在 Ubuntu 系统上安装任何服务器或工具之前,更新现有包是至关重要的。命令如下: ![]() 我们也可以在安装 Java 套件之前执行此命令。通过这种方式,系统包将与Java 套件的安装一起更新。 步骤 2:Apache Maven 安装主要有两种方法可以在我们的系统中获取 Maven。一种是使用 apt 命令下载,另一种是直接使用 wget 命令从其 Web 来源下载。 我们需要在终端窗口中运行以下命令来安装 Maven: ![]() 步骤 3:验证我们也可以在终端窗口中使用以下命令来验证 Maven 安装: ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。