Maven Tutorial: สิ่งที่คุณต้องรู้เพื่อเริ่มต้น



บล็อกเกี่ยวกับบทช่วยสอน Maven นี้ครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้เพื่อเริ่มต้นใช้งาน Maven เพื่อสร้างโครงการของคุณ

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

ในบล็อกเกี่ยวกับการสอน Maven นี้เราจะกล่าวถึงหัวข้อต่อไปนี้:

  1. ทำไมเราถึงต้องการ Maven?
  2. Maven คืออะไร?
  3. สถาปัตยกรรม Maven
  4. วงจรชีวิตขั้นตอนและเป้าหมายของ Maven
  5. โครงการสาธิต

ทำไมเราถึงต้องการ Maven?

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





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

Maven คืออะไร?

โครงการ Maven พัฒนาโดย Apache Software Foundation ซึ่งเดิมเคยเป็นส่วนหนึ่งของโครงการจาการ์ตา Maven เป็นเครื่องมือสร้างอัตโนมัติที่มีประสิทธิภาพซึ่งส่วนใหญ่ใช้สำหรับโครงการที่ใช้ Java Maven ช่วยคุณจัดการกับสองประเด็นสำคัญในการสร้างซอฟต์แวร์ -



  • อธิบายถึงวิธีการสร้างซอฟต์แวร์
  • อธิบายการอ้างอิง

Maven ชอบการประชุมมากกว่าการกำหนดค่า Maven จะดาวน์โหลดไลบรารี Java และปลั๊กอิน Maven แบบไดนามิกจากที่เก็บอย่างน้อยหนึ่งแห่งเช่น Maven Central Repository และเก็บไว้ในแคชภายในเครื่อง อาร์ติแฟกต์ของโปรเจ็กต์โลคัลยังสามารถอัปเดตด้วยแคชภายในเครื่องนี้ Maven ยังสามารถช่วยคุณสร้างและจัดการโครงการที่เขียนด้วยภาษา C #, Ruby, Scala และภาษาอื่น ๆ

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

c ++ ผสานรหัสการจัดเรียง

วัตถุประสงค์ของ Maven

วัตถุประสงค์ของ Maven

ใครควรใช้ Maven เมื่อใด

    1. หากมีการอ้างอิงมากเกินไปสำหรับโครงการ
    2. เมื่อมีการอัปเดตเวอร์ชันอ้างอิงบ่อยครั้ง
    3. การสร้างการรวมและการทดสอบอย่างต่อเนื่องสามารถจัดการได้อย่างง่ายดายโดยใช้ maven
    4. เมื่อต้องการวิธีง่ายๆในการสร้างเอกสารจากซอร์สโค้ดการรวบรวมซอร์สโค้ดรหัสที่คอมไพล์แล้วบรรจุลงในไฟล์ JAR หรือไฟล์ ZIP

สถาปัตยกรรม Maven

วงจรชีวิตขั้นตอนและเป้าหมายของ Maven

1. วงจรชีวิต Maven



มีวงจรชีวิตเฉพาะที่ Maven ติดตามเพื่อปรับใช้และแจกจ่ายโครงการเป้าหมาย

วงจรชีวิตในตัวมีสามรอบ:

  • ค่าเริ่มต้น - นี่คือวงจรชีวิตหลักของ Maven เนื่องจากมีหน้าที่รับผิดชอบในการปรับใช้โครงการ
  • สะอาด - วงจรชีวิตนี้ใช้เพื่อล้างโปรเจ็กต์และลบไฟล์ทั้งหมดที่สร้างโดยบิลด์ก่อนหน้านี้
  • เว็บไซต์ - จุดมุ่งหมายของวงจรชีวิตนี้คือการสร้างเอกสารไซต์ของโครงการ

แต่ละวงจรชีวิตประกอบด้วยลำดับขั้นตอน วงจรชีวิตการสร้างเริ่มต้นประกอบด้วย 23 เฟสเนื่องจากเป็นวงจรชีวิตการสร้างหลักของ Maven

ในทางกลับกันวงจรชีวิตที่สะอาดประกอบด้วย 3 เฟสในขณะที่วงจรชีวิตของไซต์ประกอบด้วย 4 เฟส

2. เฟส Maven

ข้อ จำกัด ของคีย์หลักคืออะไร

ระยะ Maven ไม่ใช่แค่ขั้นตอนในวงจรชีวิตของ Maven แต่ละขั้นตอนดำเนินงานเฉพาะ

ต่อไปนี้เป็นขั้นตอนที่สำคัญบางประการในวงจรชีวิตการสร้างเริ่มต้น -

  • ตรวจสอบความถูกต้อง - ขั้นตอนนี้จะตรวจสอบว่ามีข้อมูลทั้งหมดที่จำเป็นสำหรับการสร้างหรือไม่
  • รวบรวม - เฟสนี้รวบรวมซอร์สโค้ด
  • ทดสอบคอมไพล์ - ขั้นตอนนี้รวบรวมซอร์สโค้ดการทดสอบ
  • ทดสอบ - ระยะนี้ดำเนินการทดสอบหน่วย
  • แพ็คเกจ - เฟสนี้รวบรวมซอร์สโค้ดในรูปแบบที่สามารถแจกจ่ายได้ (jar, war)
  • การทดสอบบูรณาการ - ขั้นตอนนี้ประมวลผลและปรับใช้แพคเกจหากจำเป็นเพื่อเรียกใช้การทดสอบการรวม
  • ติดตั้ง - เฟสนี้จะติดตั้งแพ็กเกจลงในที่เก็บโลคัล
  • ปรับใช้ - ขั้นตอนนี้คัดลอกแพ็กเกจไปยังที่เก็บระยะไกล

Maven ดำเนินการขั้นตอนตามลำดับที่ระบุ ซึ่งหมายความว่าหากเรารันเฟสเฉพาะโดยใช้คำสั่งเช่น mvn สิ่งนี้จะไม่เพียง แต่รันเฟสที่ระบุเท่านั้น แต่ยังรวมถึงเฟสก่อนหน้าทั้งหมดด้วย

ตัวอย่างเช่นหากคุณรันคำสั่ง mvn deploy นั่นคือเฟสการปรับใช้ซึ่งเป็นเฟสสุดท้ายในวงจรชีวิตการสร้างดีฟอลต์สิ่งนี้จะดำเนินการทุกเฟสก่อนถึงเฟสการปรับใช้เช่นกัน

3. เป้าหมาย Maven

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

  • คอมไพเลอร์: คอมไพล์ - คอมไพล์เฟส
  • คอมไพเลอร์: ทดสอบ - เฟสคอมไพล์ทดสอบ
  • Surefire: ทดสอบ - ระยะทดสอบ
  • ติดตั้ง: ติดตั้ง - ติดตั้งเฟส
  • โถและสงคราม: สงคราม - เฟสแพ็คเกจ

ปลั๊กอิน Maven คือกลุ่มเป้าหมาย อย่างไรก็ตามเป้าหมายเหล่านี้ไม่จำเป็นต้องผูกพันกับขั้นตอนเดียวกันทั้งหมดตัวอย่างเช่นปลั๊กอิน Maven Failsafe ซึ่งรับผิดชอบในการเรียกใช้การทดสอบการรวมระบบ สำหรับการทดสอบหน่วยคุณต้องมีปลั๊กอิน Maven surefire

โครงการสาธิต

ในส่วนนี้ของไฟล์ Maven เราจะดูโครงการสาธิต เพื่อสาธิตวิธีการสร้างโครงการโดยใช้ Maven ฉันได้สร้างไฟล์ โปรเจ็กต์ Java พร้อมกับ TestNG โดยใช้ Eclipse IDE นี่เป็นโปรแกรมง่ายๆที่ฉันเขียนโค้ดเพื่อทดสอบชื่อของเว็บไซต์

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

ดังนั้นสำหรับโครงการนี้คุณต้องการ ดาวน์โหลด Maven และ Eclipse บนระบบของคุณ เวอร์ชันที่ฉันใช้ในระบบของฉันมีดังนี้ -

  1. คราส - Enterprise Edition เวอร์ชัน 4.12.0 (2019-06)
  2. Java - เวอร์ชัน 1.8.0_211
  3. Maven - เวอร์ชัน 3.6.1
  • นอกเหนือจากนี้คุณต้องดาวน์โหลดปลั๊กอิน TestNG สำหรับ Eclipse และคุณสามารถดาวน์โหลดได้โดยใช้ขั้นตอนต่อไปนี้ -
    • เปิด Eclipse แล้วไปที่ Help ในวิธีใช้คลิกที่ตลาด Eclipse
    • พิมพ์ TestNG ในช่องค้นหาแล้วคลิกไป ในผลลัพธ์คุณจะเห็น“ TestNG for Eclipse” คุณต้องดาวน์โหลด
  • หลังจากที่คุณตั้งค่าระบบของคุณด้วยสิ่งที่กล่าวมาแล้วคุณก็พร้อมที่จะสร้างโครงการสาธิตโดยใช้ Maven ตอนนี้ฉันจะบอกขั้นตอนทั้งหมดที่จำเป็นในการทำสิ่งนี้
    • ใน Eclipse คลิกที่ File -> New -> Maven Project
    • คลิกที่ Create a simple project (ข้ามการเลือก archetype) จากนั้นคลิกที่ถัดไป
  • ตอนนี้คุณจะเห็นหน้าต่างที่มีพารามิเตอร์เช่น Group Id, Artifact Id และอื่น ๆ
    • Group Id คือรหัสเฉพาะของกลุ่มที่เป็นเจ้าของโครงการ
    • Artifact Id คือชื่อของหน่วยคอมไพล์สุดท้าย
    • เวอร์ชันคือเวอร์ชันของสิ่งประดิษฐ์ที่สร้างขึ้น SNAPSHOT แสดงว่างานอยู่ระหว่างดำเนินการ
    • บรรจุภัณฑ์อาจเป็นขวดโหลสงครามหรือปอมขึ้นอยู่กับโครงการของคุณ สำหรับโครงการของเราเราจะเลือกขวด จากนั้นตั้งชื่อโครงการของคุณ

  • เมื่อคุณสร้างโครงการแล้วคุณจะเห็นโครงสร้างโครงการของโครงการ Maven ของคุณ คุณจะเห็นสิ่งต่างๆต่อไปนี้ -
    • pom.xml
    • src และเป้าหมาย
    • src / main / java
    • src / test / java
    • การพึ่งพา Maven
  • ตอนนี้สร้างไฟล์คลาสใน src / main / test แล้วตั้งชื่อว่า DemoClass คลาสนี้มีรหัสซีลีเนียมที่เราใช้ในการทดสอบ ตอนนี้เราได้เพิ่ม Selenium, TestNG dependencies และ Maven compiler และ Surefire plugin ลงในไฟล์ pom.xml รหัสสำหรับ DemoClass และ pom.xml มีให้ด้านล่าง:
package maven.selenium.testng import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test public class DemoClass {@Test public void test () พ่น InterruptedException {// declaration และ การสร้างอินสแตนซ์ของออบเจ็กต์ / ตัวแปร //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // ไดรเวอร์ WebDriver = FirefoxDriver ใหม่ () // แสดงความคิดเห็น 2 บรรทัดด้านบนและยกเลิกการแสดงความคิดเห็นด้านล่าง 2 บรรทัดที่จะใช้ Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') ไดรเวอร์ WebDriver = ChromeDriver ใหม่ () String baseUrl = 'http://newtours.demoaut.com/' String expectedTitle = 'Welcome: Mercury Tours' String actualTitle = '' // เปิด Fire fox และนำไปที่ Base URL driver.get (baseUrl) // รับค่าจริงของชื่อเรื่อง actualTitle = driver.getTitle () Thread.sleep (3000 ) / * * เปรียบเทียบชื่อจริงของหน้ากับชื่อที่คาดไว้และพิมพ์ * ผลลัพธ์เป็น 'ผ่าน' หรือ 'ล้มเหลว' * / if (actualTitle.contentEquals (expectedTitle)) {System.out.println ('Test Passed!')} else {System.out.println ('Test Failed')} // ปิด Fire fox driver.close ()}}
4.0.0 maven.selenium maven.selenium.testng 0.0.1-SNAPSHOT EdurekaDemo 2.53.1 6.9.10 org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 org.apache.maven.plugins maven-surefire-plugin 2.18 .1 testng.xml org.seleniumhq.selenium selenium-java 3.141.59 org.testng testng 6.14.3 test
  • ก่อนรันโปรเจ็กต์เราต้องแปลงไฟล์คลาส DemoClass เป็นไฟล์ TestNG ในการทำเช่นนั้นให้คลิกขวาที่ DemoClass -> TestNG -> Convert to TestNG

  • ตอนนี้เพื่อเรียกใช้โครงการให้คลิกขวาที่โครงการ -> เรียกใช้เป็น -> Maven clean การดำเนินการนี้จะล้างโปรเจ็กต์โดยการลบงานสร้างก่อนหน้าทั้งหมด

  • หลังจาก Maven clean คุณต้องทดสอบโครงการเนื่องจากเราได้เขียนโค้ดสำหรับทดสอบเว็บแอปพลิเคชัน คลิกขวาที่โครงการ -> Run as -> Maven test เพื่อเปิดเว็บไซต์และตรงกับชื่อของเว็บไซต์ ถ้าตรงกับกรณีทดสอบของเราก็จะผ่านไป

    echo ใน php คืออะไร
  • เรายังสามารถดำเนินการคำสั่งข้างต้นโดยใช้พรอมต์คำสั่ง เพื่อสิ่งนั้นเราต้องการพา ธ ของไฟล์ pom.xml

    • คุณสามารถรับเส้นทางได้โดยคลิกขวาที่ไฟล์ pom.xml -> Properties -> Location
    • คัดลอกเส้นทางจากนั้นเปิดพรอมต์คำสั่งและวางที่นั่นโดยใช้ cd cd C: / Users / Arvind Phulare / eclipse-workspace / maven.selenium.testng
    • เมื่อคุณทำสิ่งนี้แล้วคุณสามารถพิมพ์คำสั่ง Maven ได้อีกครั้งเช่น mvn clean และ mvn test

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

ตอนนี้คุณเข้าใจบทช่วยสอน Maven แล้วลองดูสิ่งนี้ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรม Edureka DevOps Certification ช่วยให้ผู้เรียนเข้าใจ DevOps คืออะไรและได้รับความเชี่ยวชาญในกระบวนการและเครื่องมือต่างๆของ DevOps เช่น Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack และ GIT สำหรับการทำหลายขั้นตอนใน SDLC โดยอัตโนมัติ

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