26 คำถามและคำตอบในการสัมภาษณ์ Maven ที่สำคัญที่สุด [สำหรับมือใหม่และผู้มีประสบการณ์]

เผยแพร่แล้ว: 2021-01-21

สารบัญ

ภาพรวม

คุณรู้อยู่แล้วว่าความเชี่ยวชาญใน Maven นั้นคุ้มค่ามากในวันนี้ มิฉะนั้นคุณจะไม่อยู่ที่นี่ ท้ายที่สุด Maven เป็นเครื่องมือที่เหมาะสำหรับองค์กรชั้นนำส่วนใหญ่ และโดยธรรมชาติแล้ว พวกเขากระตือรือร้นที่จะจ้างบุคคลเช่นตัวคุณเองเพื่อก้าวไปข้างหน้าในการแข่งขัน

ตอนนี้คงจะสมบูรณ์แบบเกินไปในโลกที่คุณรู้ว่าคำถามใดที่คุณจะถูกถามในการสัมภาษณ์งานครั้งต่อไปของคุณ อย่างไรก็ตาม เรามีสิ่งที่ดีที่สุดถัดไปสำหรับคุณ: รายการคำถามและคำตอบในการสัมภาษณ์ Maven ที่ถามบ่อยที่สุดที่รวบรวมมาอย่างดี สิ่งเหล่านี้อาจทำให้คุณได้งานที่คุณกำลังมองหา มาขุดกันเถอะ!

Maven คำถามและคำตอบสัมภาษณ์

คำถามที่ 1: Maven คืออะไร?

Apache Maven เป็นเครื่องมือสร้างระบบอัตโนมัติที่มีประสิทธิภาพซึ่งโฮสต์โดย Apache Software Foundation ซึ่งใช้ในการสร้างและจัดการโครงการที่เขียนด้วยภาษาจาวา นอกจากนี้ยังรองรับการจัดการโปรเจ็กต์ที่เขียนด้วย C/C++, Ruby, Scala และภาษาโปรแกรมอื่นๆ อีกสองสามภาษา Maven ใช้เฟรมเวิร์กวงจรชีวิตเริ่มต้นเพื่อสร้างระบบอัตโนมัติและทำความเข้าใจโครงสร้างพื้นฐานของโปรเจ็กต์

คำถามที่ 2: วัตถุประสงค์ของ Maven คืออะไร

เพื่อช่วยให้นักพัฒนาเข้าใจสถานะความพยายามในการพัฒนาทั้งหมดในลักษณะที่ช่วยประหยัดเวลา ข้อกังวลหลักของ Maven คือ:

  • เพื่อให้ขั้นตอนการสร้างโครงการง่ายขึ้น

Maven ให้นักพัฒนาเข้าถึงกลไกพื้นฐาน แต่ป้องกันพวกเขาจากรายละเอียดอื่นๆ หลายประการ

  • เพื่อให้เกิดความสม่ำเสมอในระบบบิลด์

โครงการ Maven สร้างขึ้นโดยใช้ระบบปลั๊กอินและ Project Object Model (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 ส่วนกลาง ซึ่งคล้ายกับ CPAN ของ Perl และอนุญาตให้ใช้ JAR ซ้ำได้ในทุกโครงการ ผ่านการสื่อสารที่ใช้งานอยู่ระหว่างโปรเจ็กต์ ปัญหาความเข้ากันได้ย้อนหลังสามารถขจัดออกได้

คำถามที่ 7: ขั้นตอนของ Clean Lifecycle คืออะไร

ขั้นตอนของวงจรชีวิตที่สะอาดมีดังนี้:

  1. ก่อนทำความสะอาด
  2. ทำความสะอาด
  3. หลังทำความสะอาด

คำถามที่ 8: กำหนด POM

POM (ย่อมาจาก Project Object Model) เป็นหน่วยงานพื้นฐานใน Maven สร้างเป็นนามสกุล XML มันถูกเก็บไว้ในไดเร็กทอรีฐานโดย pom.xml ข้อมูลเกี่ยวกับการกำหนดค่าต่างๆ ที่ทำโดย Maven คือไฟล์นี้

คำถามที่ 9: ขั้นตอนของวงจรชีวิตไซต์คืออะไร

ต่อไปนี้เป็นขั้นตอนของวงจรชีวิตไซต์:

  1. ก่อนไซต์
  2. เว็บไซต์
  3. โพสต์ไซต์
  4. site-deploy

คำถามที่ 10: เมื่อระบุใน POM องค์ประกอบใดของ POM ที่โปรไฟล์สามารถแก้ไขได้

องค์ประกอบ POM ต่อไปนี้สามารถแก้ไขได้:

<ปลั๊กอิน>

<คุณสมบัติ>

<โมดูล>

<การรายงาน>

<ที่เก็บ>

<pluginRepositories>

<การพึ่งพา>

<dependencyManagement>

<distributionManagement>

คำถามที่ 11: อธิบายวงจรชีวิตบิลด์ของ Maven

ลำดับเชิงตรรกะของเฟสที่กำหนดไว้เพื่อระบุลำดับของการดำเนินการตามเป้าหมายเรียกว่า Build Lifecycle แต่ละเฟสเป็นการบ่งชี้ระยะในวงจรชีวิต

เช็คเอาท์: คำถามและคำตอบสำหรับการสัมภาษณ์ช่วงฤดูใบไม้ผลิที่สำคัญ 10 อันดับแรก

คำถามที่ 12: วงจรชีวิตบิลด์ 3 รอบของ Maven คืออะไร

สามรอบการสร้างของ Maven คือ:

  1. ล้าง: ขั้นตอนนี้คือการล้างสิ่งประดิษฐ์ที่เหลืออยู่จากบิลด์ก่อนหน้า Clean Lifecycle ประกอบด้วยสามขั้นตอน: ก่อนการทำความสะอาด การทำความสะอาด และหลังการทำความสะอาด
  2. ค่าเริ่มต้น (หรือบิลด์): รอบการสร้างเริ่มต้นใช้สำหรับตำแหน่งที่แอปพลิเคชันสร้างขึ้น
  3. ไซต์: เอกสารเกี่ยวกับไซต์ที่เกี่ยวข้องจะถูกสร้างขึ้นในขั้นตอนนี้ มีสี่ขั้นตอนในวงจรชีวิตของไซต์ ได้แก่ pre-site, site, post-site และ site-deploy

คำถามที่ 13: อธิบายเป้าหมายใน Maven

เป้าหมายหมายถึงงานเฉพาะซึ่งเป็นส่วนหนึ่งของการสร้างและการจัดการโครงการ เป้าหมายอาจจะหรืออาจจะไม่ผูกพันเพื่อสร้างเฟส หนึ่งที่ถูกผูกไว้กับขั้นตอนการสร้างเป็นศูนย์ ไม่จำเป็นต้องดำเนินการภายในวงจรชีวิตการสร้าง สามารถทำได้ภายนอกโดยการร้องขอโดยตรง

คำถามที่ 14: อะไรคือจุดประสงค์ของคำสั่งต่อไปนี้: mvn clean dependency:copy-dependencies package?

คำสั่งดังกล่าวใช้เพื่อล้างโครงการ จากนั้นจะคัดลอกการพึ่งพาและดำเนินการทุกขั้นตอนของโครงการ

คำถามที่ 15: อธิบายโปรไฟล์บิลด์ในคำศัพท์ Maven

โปรไฟล์บิลด์แสดงถึงกลุ่มของค่าคอนฟิกูเรชันโดยใช้ค่าเริ่มต้นของบิลด์ Maven สามารถตั้งค่าหรือแทนที่ได้ โปรไฟล์บิลด์อนุญาตให้ปรับแต่งบิลด์ในสภาพแวดล้อมต่างๆ (เช่น สภาพแวดล้อมการผลิตกับการพัฒนา)

คำถามที่ 16: กล่าวถึงโปรไฟล์บิลด์ที่แตกต่างกันสามแบบ

  1. ต่อผู้ใช้: คุณกำหนดโปรไฟล์บิลด์ต่อผู้ใช้ในไฟล์ xml ของการตั้งค่า Maven (%USER_HOME%/.m2/settings.xml)
  2. ต่อโปรเจ็กต์: โปรไฟล์บิลด์ต่อโปรเจ็กต์ถูกกำหนดไว้ในไฟล์ใดไฟล์หนึ่งจากสองไฟล์นี้ – ไฟล์ POM, pom.xml
  3. โกลบอล: โปรไฟล์บิลด์นี้ถูกกำหนดในไฟล์ xml ของการตั้งค่าโกลบอลใน Maven (%M2_HOME%/conf/settings.xml)

คำถามที่ 17: ตำแหน่งเริ่มต้นของที่เก็บในเครื่องของคุณคืออะไร

ตำแหน่งเริ่มต้นคือ: ~/m2 . /repository

คำถามที่ 18: เขียนคำสั่งเพื่อเริ่มการติดตั้งไฟล์ JAR ในที่เก็บในเครื่องของคุณหรือไม่

คำสั่งคือ: mvn install

คำถามที่ 19: อธิบายสั้นๆ เกี่ยวกับ Maven Plugins ต่างๆ

ปลั๊กอิน Maven สองประเภทคือ:

  1. ปลั๊กอินสำหรับสร้าง: ปลั๊กอินเหล่านี้ทำงานในระหว่างกระบวนการสร้าง พวกเขาควรได้รับการกำหนดค่าในองค์ประกอบ <build/> ของไฟล์ pom.xml
  2. ปลั๊กอินการรายงาน: สิ่งเหล่านี้ทำงานเมื่อมีการสร้างไซต์และต้องได้รับการกำหนดค่าในองค์ประกอบ <reporting/> ของไฟล์ pom.xml

คำถามที่ 20: คำสั่งใดที่ใช้ในการสร้างโครงการของคุณแบบออฟไลน์

ใช้คำสั่งต่อไปนี้: mvn o package

คำถามที่ 21: คำสั่งเพื่อแยกการพึ่งพาคืออะไร?

อิลิเมนต์ การ ยกเว้น ใช้เพื่อดำเนินการพึ่งพา

คำถามที่ 22. ขั้นตอนในการล้างปลั๊กอินโดยอัตโนมัติระหว่างบิลด์คืออะไร?

หากคุณรวมคลีนปลั๊กอินไว้ในแท็กการดำเนินการในไฟล์ pom.xml ปลั๊กอินจะถูกล้าง

คำถามที่ 23: กระบวนการหยุดการเผยแพร่ปลั๊กอินไปยัง POM ย่อยเป็นอย่างไร

ใช้คำสั่งต่อไปนี้: set <inherited> เป็น false

คำถามที่ 24: อธิบายการใช้องค์ประกอบการดำเนินการในไฟล์ pom?

อิลิเมนต์ <execution> ในไฟล์ pom มีข้อมูลที่จำเป็นในการรันปลั๊กอิน

คำถามที่ 25: กล่าวถึงชื่อสิ่งประดิษฐ์ที่มีคุณสมบัติครบถ้วนของโครงการ

ชื่ออาร์ติแฟกต์แบบเต็มของโปรเจ็กต์คือ: <groupId>:<artifactId>:<version>

คำถามที่ 26: กล่าวถึงขั้นตอนในการอ้างอิงคุณสมบัติขั้นสุดท้ายในไฟล์ pom.xml หรือไม่

ในการดำเนินการดังกล่าว ชื่อองค์ประกอบ XML ที่ใช้ในคำจำกัดความของค่าจะถูกใช้โดยชื่อคุณสมบัติที่อนุญาตให้ "pom" เป็นชื่อแทนองค์ประกอบโครงการ

ซึ่งหมายความว่า ${pom.name} เป็นการอ้างอิงถึงชื่อโครงการ ${pom.version} ระบุเวอร์ชัน และ ${pom.build.finalName} เป็นชื่อไฟล์สุดท้ายที่สร้างขึ้นบนบรรจุภัณฑ์ของโครงการที่สร้างขึ้น และอื่นๆ

นั่นคือทั้งหมดที่มีในรายการคำถามและคำตอบสำหรับการสัมภาษณ์ Maven เราหวังว่าสิ่งนี้จะมีประโยชน์!

ต้องอ่าน: คำถามและคำตอบในการสัมภาษณ์ของเจนกินส์ 2021 สำหรับนักศึกษาใหม่และผู้มีประสบการณ์

เรียนรู้ หลักสูตรซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

บทสรุป

สิ่งเหล่านี้ครอบคลุมถึงความรู้พื้นฐานของ Maven เล็กน้อยซึ่งมีไว้เพื่อใช้ในการสัมภาษณ์ แม้ว่าจะไม่ใช่รายการที่ละเอียดถี่ถ้วน แต่ก็วางรากฐานสำหรับการแสวงหานายหน้าด้วยความรู้ของคุณเกี่ยวกับ Maven

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Jenkins ซึ่งเป็นซอฟต์แวร์ฟูลสแตก ลองดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์แบบฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ และการมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

Maven คืออะไร?

Maven เป็นเครื่องมือสร้างอัตโนมัติที่ดาวน์โหลดการพึ่งพาโปรเจ็กต์โดยอัตโนมัติ ดังนั้นคุณจึงไม่ต้องทำเอง สามารถสร้าง รวบรวม และทดสอบโครงการต่างๆ ได้ ดังนั้นหากคุณกำลังทำงานในโครงการต่างๆ มากมาย เครื่องมือนี้เหมาะสำหรับคุณ เมื่อติดตั้งแล้ว คุณสามารถใช้คำสั่งง่ายๆ เพื่อจัดการการสร้างและทดสอบโครงการของคุณ และจะดาวน์โหลดการพึ่งพาโครงการให้คุณด้วย ดังนั้นคุณจึงไม่ต้องดำเนินการด้วยตนเอง

Gradle คืออะไร?

Gradle เป็นเครื่องมือสร้างอัตโนมัติ เครื่องมือสร้างคือแอปพลิเคชันซอฟต์แวร์ที่ออกแบบมาเพื่อสร้างซอฟต์แวร์โดยอัตโนมัติ วัตถุประสงค์หลักคือเพื่อลดจำนวนความพยายามที่จำเป็นในการสร้างผลิตภัณฑ์และจัดการกระบวนการสร้าง Gradle เป็นภาษาสร้างตามธรรมชาติที่สามารถใช้เพื่อสร้างระบบการสร้างสคริปต์ที่ยืดหยุ่นได้ Gradle เป็นโครงการโอเพนซอร์ซและสามารถรวมเข้ากับกระบวนการสร้างของบริษัทได้ เป็นเครื่องมือสร้างที่สร้างได้เร็วและชาญฉลาดกว่า Ant, Maven และเครื่องมืออื่นๆ มันถูกออกแบบมาสำหรับสถานการณ์การสร้างหลายโปรเจ็กต์และตามแบบแผนเหนือการกำหนดค่า เป็นเครื่องมือสร้างอัตโนมัติที่สร้าง ทดสอบ และเผยแพร่แอปพลิเคชันตามต้องการ นอกจากนี้ยังสามารถดูแลการพึ่งพาทั้งหมด

เครื่องมือสร้างอัตโนมัติคืออะไร

เครื่องมือสร้างระบบอัตโนมัติ เช่น Jenkins, TravisCI และ CircleCI จะใช้เพื่อทำให้กระบวนการสร้างของคุณเป็นแบบอัตโนมัติตั้งแต่ต้นจนจบ ซึ่งรวมถึงการสร้างแอปพลิเคชัน การรันการทดสอบหน่วย การผสานรวมกับระบบควบคุมเวอร์ชัน (เช่น git) การอัปโหลดสิ่งประดิษฐ์ไปยังที่เก็บส่วนตัวหรือสาธารณะ และสร้างรายงานสำหรับแต่ละบิลด์ ประโยชน์คือเครื่องมือเหล่านี้สามารถกำหนดค่าให้รันกระบวนการสร้าง ทดสอบ และปรับใช้ของคุณโดยอัตโนมัติ เมื่อกำหนดค่าแล้ว พวกเขาสามารถจัดหาทีมและบริการการผสานรวมอย่างต่อเนื่อง ซึ่งอำนวยความสะดวกในการจัดส่งอย่างต่อเนื่อง และได้รับการออกแบบและดำเนินการเพื่อให้ขั้นตอนการสร้างที่แข็งแกร่งและปรับขนาดได้