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)集成、將工件上傳到私有或公共存儲庫以及為每個構建生成報告。 好處是這些工具可以配置為自動運行您的構建、測試和部署過程。 配置完成後,它們可以提供團隊和持續集成服務,從而促進持續交付,並且它們的設計和實施旨在提供強大且可擴展的構建管道。