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 มีดังนี้:
- สนับสนุนให้นักพัฒนาปฏิบัติตามแนวทางการพัฒนาที่ดีที่สุด ทำให้การสร้างโปรเจ็กต์ง่ายขึ้นและเร็วขึ้น โดยสามารถเริ่มโปรเจ็กต์ใหม่ได้ภายในไม่กี่วินาที
- ช่วยให้ใช้งานได้สม่ำเสมอ ซึ่งหมายความว่าไม่มีเวลาเพิ่มเมื่อนักพัฒนาใหม่เข้าสู่โครงการ
- Maven จัดการการพึ่งพาอย่างมีประสิทธิภาพ ซึ่งหมายความว่าการอัปเดตเสร็จสิ้นโดยอัตโนมัติ และมีการจัดเรียงการพึ่งพาสกรรมกริยา
- อนุญาตให้เข้าถึงหลายโครงการพร้อมกัน
- มันมีที่เก็บข้อมูลกว้างขวางของไลบรารีและข้อมูลเมตา นอกจากนี้ยังมีการเตรียมการเพื่อให้สามารถเข้าถึงโครงการโอเพ่นซอร์สล่าสุดและใหญ่ที่สุดในแบบเรียลไทม์
- ช่วยให้เข้ากันได้กับส่วนขยายและอนุญาตให้ผู้ใช้เขียนปลั๊กอินใน Java หรือภาษาสคริปต์อื่น ๆ เช่น Ruby, C # และ Scala
- มีการเข้าถึงรุ่นและคุณสมบัติใหม่ทันทีซึ่งไม่ต้องการการกำหนดค่าเพิ่มเติม
- เมื่อใช้ Maven นักพัฒนาสามารถสร้างโปรเจ็กต์จำนวนมากเพื่อเลียนแบบประเภทเอาต์พุตที่กำหนดไว้ล่วงหน้า เช่น JAR, WAR นี้แทบจะไม่ต้องใช้สคริปต์ใดๆ
- Maven สามารถสร้างเว็บไซต์หรือ PDF โดยใช้ข้อมูลเมตาเดียวกันกับบิลด์เพื่อสร้างรายงานมาตรฐานเกี่ยวกับสถานะการพัฒนาของโปรเจ็กต์
- ด้วยการกำหนดค่าการเปลี่ยนแปลงใดๆ เพียงเล็กน้อย ระบบควบคุมต้นทางของคุณสามารถผสานรวมได้ จากนั้น Maven จะอนุญาตให้คุณจัดการการเปิดตัวโครงการตามแท็กบางแท็ก ข้อมูลนี้ยังสามารถเผยแพร่ไปยังที่ตั้งการแจกจ่ายเพื่อให้โครงการอื่นนำไปใช้ได้
- ที่เก็บข้อมูลส่วนกลางของ JAR นั้นมีค่ามาก และ Maven สนับสนุนให้คุณใช้ร่วมกับการพึ่งพาอื่นๆ ด้วยวิธีนี้ JAR ที่จำเป็นในการสร้างโปรเจ็กต์สามารถดาวน์โหลดได้จากที่เก็บ JAR ส่วนกลาง ซึ่งคล้ายกับ CPAN ของ Perl และอนุญาตให้ใช้ JAR ซ้ำได้ในทุกโครงการ ผ่านการสื่อสารที่ใช้งานอยู่ระหว่างโปรเจ็กต์ ปัญหาความเข้ากันได้ย้อนหลังสามารถขจัดออกได้
คำถามที่ 7: ขั้นตอนของ Clean Lifecycle คืออะไร
ขั้นตอนของวงจรชีวิตที่สะอาดมีดังนี้:
- ก่อนทำความสะอาด
- ทำความสะอาด
- หลังทำความสะอาด
คำถามที่ 8: กำหนด POM
POM (ย่อมาจาก Project Object Model) เป็นหน่วยงานพื้นฐานใน Maven สร้างเป็นนามสกุล XML มันถูกเก็บไว้ในไดเร็กทอรีฐานโดย pom.xml ข้อมูลเกี่ยวกับการกำหนดค่าต่างๆ ที่ทำโดย Maven คือไฟล์นี้
คำถามที่ 9: ขั้นตอนของวงจรชีวิตไซต์คืออะไร
ต่อไปนี้เป็นขั้นตอนของวงจรชีวิตไซต์:
- ก่อนไซต์
- เว็บไซต์
- โพสต์ไซต์
- site-deploy
คำถามที่ 10: เมื่อระบุใน POM องค์ประกอบใดของ POM ที่โปรไฟล์สามารถแก้ไขได้
องค์ประกอบ POM ต่อไปนี้สามารถแก้ไขได้:
<ปลั๊กอิน>
<คุณสมบัติ>
<โมดูล>
<การรายงาน>
<ที่เก็บ>
<pluginRepositories>
<การพึ่งพา>
<dependencyManagement>
<distributionManagement>
คำถามที่ 11: อธิบายวงจรชีวิตบิลด์ของ Maven

ลำดับเชิงตรรกะของเฟสที่กำหนดไว้เพื่อระบุลำดับของการดำเนินการตามเป้าหมายเรียกว่า Build Lifecycle แต่ละเฟสเป็นการบ่งชี้ระยะในวงจรชีวิต
เช็คเอาท์: คำถามและคำตอบสำหรับการสัมภาษณ์ช่วงฤดูใบไม้ผลิที่สำคัญ 10 อันดับแรก
คำถามที่ 12: วงจรชีวิตบิลด์ 3 รอบของ Maven คืออะไร
สามรอบการสร้างของ Maven คือ:
- ล้าง: ขั้นตอนนี้คือการล้างสิ่งประดิษฐ์ที่เหลืออยู่จากบิลด์ก่อนหน้า Clean Lifecycle ประกอบด้วยสามขั้นตอน: ก่อนการทำความสะอาด การทำความสะอาด และหลังการทำความสะอาด
- ค่าเริ่มต้น (หรือบิลด์): รอบการสร้างเริ่มต้นใช้สำหรับตำแหน่งที่แอปพลิเคชันสร้างขึ้น
- ไซต์: เอกสารเกี่ยวกับไซต์ที่เกี่ยวข้องจะถูกสร้างขึ้นในขั้นตอนนี้ มีสี่ขั้นตอนในวงจรชีวิตของไซต์ ได้แก่ pre-site, site, post-site และ site-deploy
คำถามที่ 13: อธิบายเป้าหมายใน Maven
เป้าหมายหมายถึงงานเฉพาะซึ่งเป็นส่วนหนึ่งของการสร้างและการจัดการโครงการ เป้าหมายอาจจะหรืออาจจะไม่ผูกพันเพื่อสร้างเฟส หนึ่งที่ถูกผูกไว้กับขั้นตอนการสร้างเป็นศูนย์ ไม่จำเป็นต้องดำเนินการภายในวงจรชีวิตการสร้าง สามารถทำได้ภายนอกโดยการร้องขอโดยตรง
คำถามที่ 14: อะไรคือจุดประสงค์ของคำสั่งต่อไปนี้: mvn clean dependency:copy-dependencies package?
คำสั่งดังกล่าวใช้เพื่อล้างโครงการ จากนั้นจะคัดลอกการพึ่งพาและดำเนินการทุกขั้นตอนของโครงการ
คำถามที่ 15: อธิบายโปรไฟล์บิลด์ในคำศัพท์ Maven
โปรไฟล์บิลด์แสดงถึงกลุ่มของค่าคอนฟิกูเรชันโดยใช้ค่าเริ่มต้นของบิลด์ Maven สามารถตั้งค่าหรือแทนที่ได้ โปรไฟล์บิลด์อนุญาตให้ปรับแต่งบิลด์ในสภาพแวดล้อมต่างๆ (เช่น สภาพแวดล้อมการผลิตกับการพัฒนา)
คำถามที่ 16: กล่าวถึงโปรไฟล์บิลด์ที่แตกต่างกันสามแบบ
- ต่อผู้ใช้: คุณกำหนดโปรไฟล์บิลด์ต่อผู้ใช้ในไฟล์ xml ของการตั้งค่า Maven (%USER_HOME%/.m2/settings.xml)
- ต่อโปรเจ็กต์: โปรไฟล์บิลด์ต่อโปรเจ็กต์ถูกกำหนดไว้ในไฟล์ใดไฟล์หนึ่งจากสองไฟล์นี้ – ไฟล์ POM, pom.xml
- โกลบอล: โปรไฟล์บิลด์นี้ถูกกำหนดในไฟล์ xml ของการตั้งค่าโกลบอลใน Maven (%M2_HOME%/conf/settings.xml)
คำถามที่ 17: ตำแหน่งเริ่มต้นของที่เก็บในเครื่องของคุณคืออะไร
ตำแหน่งเริ่มต้นคือ: ~/m2 . /repository
คำถามที่ 18: เขียนคำสั่งเพื่อเริ่มการติดตั้งไฟล์ JAR ในที่เก็บในเครื่องของคุณหรือไม่
คำสั่งคือ: mvn install
คำถามที่ 19: อธิบายสั้นๆ เกี่ยวกับ Maven Plugins ต่างๆ
ปลั๊กอิน Maven สองประเภทคือ:
- ปลั๊กอินสำหรับสร้าง: ปลั๊กอินเหล่านี้ทำงานในระหว่างกระบวนการสร้าง พวกเขาควรได้รับการกำหนดค่าในองค์ประกอบ <build/> ของไฟล์ pom.xml
- ปลั๊กอินการรายงาน: สิ่งเหล่านี้ทำงานเมื่อมีการสร้างไซต์และต้องได้รับการกำหนดค่าในองค์ประกอบ <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) การอัปโหลดสิ่งประดิษฐ์ไปยังที่เก็บส่วนตัวหรือสาธารณะ และสร้างรายงานสำหรับแต่ละบิลด์ ประโยชน์คือเครื่องมือเหล่านี้สามารถกำหนดค่าให้รันกระบวนการสร้าง ทดสอบ และปรับใช้ของคุณโดยอัตโนมัติ เมื่อกำหนดค่าแล้ว พวกเขาสามารถจัดหาทีมและบริการการผสานรวมอย่างต่อเนื่อง ซึ่งอำนวยความสะดวกในการจัดส่งอย่างต่อเนื่อง และได้รับการออกแบบและดำเนินการเพื่อให้ขั้นตอนการสร้างที่แข็งแกร่งและปรับขนาดได้