26 个最重要的 Maven 面试问题和答案 [适合新手和有经验的人]

已发表: 2021-01-21

目录

概述

您已经知道 Maven 的专业知识在今天很有价值,否则您就不会在这里。 毕竟,Maven 是大多数顶级企业的首选工具,自然而然地,他们热衷于雇佣像你这样的个人来在竞争中取得领先。

现在,如果你确切地知道在下一次工作面试中会被问到哪些问题,那就太完美了。 但是,我们为您准备了下一个最好的东西:精心挑选的最常见的 Maven 面试问题和答案列表。 这些可能会让你得到你正在关注的工作。 所以,让我们开始吧!

Maven 面试问答

问题1:什么是Maven?

Apache Maven 是由 Apache Software Foundation 托管的有效构建自动化工具,用于构建和管理用 Java 编写的项目。 它还支持管理使用 C/C++、Ruby、Scala 和其他一些编程语言编写的项目。 Maven 使用默认的构建生命周期框架来自动化和理解项目的基础设施。

问题 2:Maven 的目标是什么?

为了帮助开发人员以节省时间的方式理解完整的开发工作状态,Maven 主要关注的是:

  • 使构建项目的过程变得简单

Maven 使开发人员可以访问底层机制,但将它们与其他一些细节屏蔽开来。

  • 在构建系统中实现一致性

Maven 项目是使用插件系统和项目对象模型 (POM) 构建的。 熟悉一个项目可以帮助您理解所有 Maven 项目的构建。 这在节省时间方面非常有效。

  • 提供有价值的项目信息以提高效率

此信息主要来自 POM,部分来自您的项目来源。 Maven 提供的信息包括使用的依赖项、单元测试报告、来自第三方代码分析产品的插件报告等。

  • 为灌输最佳开发实践创造空间

这涉及在执行、单元测试报告、规范等方面关注当前的开发原则。

问题3:描述项目部署的顺序?

项目的部署过程包括以下步骤:

第 1 步:将所有正在进行的项目的代码输入到 SVN 或源代码存储库。 这样做是为了标记代码。

第 2 步:从 SVN 下载整个源代码。

第 3 步:第三步涉及构建应用程序。

第 4 步:作为 EAR 文件或 WAR 文件获得的构建输出存储在网络的公共位置。

第 5 步:从网络中检索文件并部署到生产站点。

第 6 步:部署过程完成后,文档将更新为应用程序的日期和版本。

问题4:Maven管理哪些方面?

Maven 上的开发人员管理以下方面:

  • 项目使用的依赖项
  • SCM(软件配置管理)
  • 发布和构建
  • 文档详细信息
  • 报告
  • 分配
  • 邮件列表

问题 5:哪个命令可以让您快速构建您的 Maven 站点?

命令是——

mvn网站

问题6:Maven有什么特点?

Maven 的一些关键特性如下:

  1. 它鼓励开发人员遵循最佳开发实践。 这使得项目构建更简单、更快——一个新项目可以在几秒钟内启动。
  2. 它支持一致的使用,这意味着当新开发人员加入项目时没有加速时间。
  3. Maven 有效地管理依赖关系,这意味着更新是自动完成的,并且传递依赖关系是排序的。
  4. 它允许同时访问多个项目。
  5. 它包含一个广泛的库和元数据存储库。 还有一些安排允许实时访问最新和最大的开源项目。
  6. 它支持与扩展的兼容性,并允许用户使用 Java 或其他脚本语言(如 Ruby、C# 和 Scala)编写插件。
  7. 无需额外配置即可立即访问新版本和功能。
  8. 使用 Maven,开发人员可以构建大量项目来模拟预定义的输出类型,例如 JAR、WAR。 这几乎不需要任何脚本。
  9. Maven 可以使用与构建相同的元数据生成网站或 PDF,以生成有关项目开发状态的标准报告。
  10. 几乎不需要任何更改配置,您的源代码控制系统就可以集成。 然后,Maven 将允许您基于特定标签管理项目发布。 此数据也可以发布到分发位置,以便其他项目使用。
  11. JAR 的中央存储库非常有价值,Maven 鼓励您将它们与其他依赖项一起使用。 这样,构建项目所需的任何 JAR 都可以从中央 JAR 存储库下载。 这类似于 Perl 的 CPAN,并允许跨项目重用 JAR。 通过项目之间的积极沟通,可以消除任何向后兼容性问题。

问题 7:清洁生命周期有哪些阶段?

清洁生命周期阶段如下:

  1. 预清洁
  2. 干净的
  3. 清洁后

问题 8:定义 POM。

POM(Project Object Model 的缩写)是 Maven 中的一个基本工作单元。 作为 XML 扩展创建,它由 pom.xml 存储在基本目录中。 有关 Maven 进行的各种配置的信息就是这个文件。

问题 9:站点生命周期有哪些阶段?

以下是站点生命周期的各个阶段:

  1. 前站点
  2. 地点
  3. 后站
  4. 站点部署

问题 10:当在 POM 中指定时,配置文件可以修改 POM 的哪些元素?

可以修改以下 POM 元素:

<插件>

<属性>

<模块>

<报告>

<存储库>

<pluginRepositories>

<依赖项>

<依赖管理>

<分发管理>

问题 11:解释 Maven 的构建生命周期。

为指定目标执行顺序而定义的逻辑阶段序列称为构建生命周期。 每个阶段都表示生命周期中的一个阶段。

查看: 10 大关键 Spring Boot 面试问题和答案

问题 12:Maven 的 3 个构建生命周期是什么?

Maven 的三个构建周期是:

  1. 清理:此阶段是清除先前构建中剩余的任何工件。 清洁生命周期包括三个阶段:清洁前、清洁和清洁后。
  2. 默认(或构建):默认构建周期适用于构建应用程序的位置。
  3. 站点:在此阶段生成任何相关的站点文档。 站点生命周期有四个阶段,即:站点前、站点、站点后和站点部署。

问题 13:解释 Maven 中的目标。

目标表示一项特定任务,该任务对于项目的构建和管理是不可或缺的。 目标可能会或可能不会被绑定到构建阶段。 绑定到零构建阶段的一个不必在构建生命周期内执行。 它可以通过直接调用在它之外完成。

问题14:下面这个命令的目的是什么:mvn clean dependency:copy-dependencies package?

上述命令用于清除项目。 然后它将复制任何依赖项并执行项目的所有阶段。

问题 15:用 Maven 术语解释构建配置文件。

构建配置文件表示一组配置值,使用这些配置值可以设置或覆盖 Maven 构建的默认值。 构建配置文件允许将构建定制到各种环境(例如生产环境与开发环境)

问题 16:提及三个不同的构建配置文件。

  1. 每个用户:您在 Maven 设置的 xml 文件 (%USER_HOME%/.m2/settings.xml) 中定义每个用户构建配置文件。
  2. 每个项目:每个项目的构建配置文件在这两个文件中的任何一个中定义——POM 文件 pom.xml。
  3. 全局:此构建配置文件将在 Maven 全局设置的 xml 文件中定义(%M2_HOME%/conf/settings.xml)。

问题 17:您的本地存储库的默认位置是什么?

默认位置是: ~/m2./repository

问题 18:在本地仓库中编写启动 JAR 文件安装的命令?

命令是: mvn install

问题 19:简要描述不同的 Maven 插件。

两种类型的 Maven 插件是:

  1. 构建插件:这些插件在构建过程中执行。 它们应该在 pom.xml 文件的 <build/> 元素中进行配置。
  2. 报告插件:这些插件在站点生成时执行,并且必须在 pom.xml 文件的 <reporting/> 元素中进行配置。

问题20:离线构建项目使用哪个命令?

使用以下命令: mvn o package

问题21:排除依赖的命令是什么?

排除元素用于执行依赖

问题 22. 在构建过程中自动清理插件的步骤是什么?

如果您在 pom.xml 文件的执行标记中包含 clean 插件,则该插件将被清除。

问题 23:停止向子 POM 传播插件的过程是什么?

使用以下命令:将 <inherited> 设置为 false

问题24:解释一下pom文件中执行元素的使用?

pom 文件中的 <execution> 元素包含执行插件所需的信息。

问题 25:提及项目的完全限定工件名称。

项目的完全限定工件名称是: <groupId>:<artifactId>:<version>

问题 26:提到在 pom.xml 文件中引用确定属性的步骤?

为此,值定义中使用的 XML 元素名称由属性名称使用,其中“pom”被允许用作项目元素别名。

这意味着,${pom.name} 是对项目名称的引用,${pom.version} 表示它的版本,${pom.build.finalName} 是在构建项目的打包上创建的最终文件名,等等。

这就是 Maven 面试的问答列表中的全部内容。 我们希望这能派上用场!

必读:2021 年 Jenkins 面试问答

从世界顶级大学在线学习软件课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

这些主要涵盖了一些Maven的基本知识,旨在为面试做好准备。 虽然不是一份详尽的清单,但它为用您的 Maven 知识吸引招聘人员奠定了基础。

如果您有兴趣了解有关 Jenkins 全栈软件的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为工作专业人士设计,提供 500 多个小时的严格培训,9 个以上的项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

什么是马文?

Maven 是一个构建自动化工具,它会自动下载项目依赖项,因此您不必自己动手。 它能够构建、编译和测试项目,所以如果你正在处理许多不同的项目,这个工具适合你。 安装后,您可以使用简单的命令来管理项目的构建和测试,它还会为您下载项目依赖项,因此您不必手动进行。

什么是 Gradle?

Gradle 是一个构建自动化工具。 构建工具是一种软件应用程序,旨在自动构建软件。 其主要目的是减少构建产品和管理构建过程所需的工作量。 Gradle 是一种自然的构建语言,可用于创建可编写脚本的灵活构建系统。 Gradle 是一个开源项目,可以集成到公司的构建过程中。 它是一个构建工具,比 Ant、Maven 和其他工具构建更快、更智能。 它是为多项目构建场景而设计的,并且基于约定优于配置。 它是一种构建自动化工具,可按需构建、测试和发布应用程序。 它还可以处理所有依赖项。

什么是构建自动化工具?

Jenkins、TravisCI 和 CircleCI 等构建自动化工具用于从头到尾自动化构建过程。 这包括构建应用程序、运行单元测试、与版本控制系统(例如 git)集成、将工件上传到私有或公共存储库以及为每个构建生成报告。 好处是这些工具可以配置为自动运行您的构建、测试和部署过程。 配置完成后,它们可以提供团队和持续集成服务,从而促进持续交付,并且它们的设计和实施旨在提供强大且可扩展的构建管道。