Apache Maven — โดยสังเขป

Feb 17 2023
หากคุณเป็น Java Developer กิจกรรมประจำวันของคุณในขณะที่ทำงานในโครงการของคุณ ได้แก่ — การเขียนโค้ด การคอมไพล์โค้ด การทดสอบโค้ด การบรรจุในรูปแบบของสิ่งประดิษฐ์ เช่น jar หรือไฟล์ war จากนั้นปรับใช้สิ่งนี้ สิ่งประดิษฐ์ไปยังเว็บเซิร์ฟเวอร์ มีงานมากมายที่คุณต้องจัดการด้วยตนเอง และแน่นอนว่า คุณสามารถทำให้งานเหล่านี้เป็นอัตโนมัติได้โดยใช้ไลบรารี่ที่เรียกว่า Apache Maven ในบทความนี้ เราจะเข้าใจว่า Apache Maven คืออะไร และคุณจะใช้มันอย่างมีประสิทธิภาพเพื่อสร้างและจัดการของคุณได้อย่างไร โครงการจาวา อันดับแรก ให้เราเข้าใจพื้นฐานของ maven Maven คืออะไร? Maven เป็นเครื่องมือการจัดการโครงการที่พัฒนาขึ้นเพื่อช่วยจัดการโครงการที่พัฒนาโดยใช้ภาษา JVM เช่น Java และ Scala

หากคุณเป็น Java Developer กิจกรรมประจำวันของคุณในขณะที่ทำงานในโครงการของคุณ ได้แก่ — การเขียนโค้ด การคอมไพล์โค้ด การทดสอบโค้ด การบรรจุในรูปแบบของสิ่งประดิษฐ์ เช่น jar หรือไฟล์ war จากนั้นปรับใช้สิ่งนี้ สิ่งประดิษฐ์ไปยังเว็บเซิร์ฟเวอร์

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

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

ขั้นแรก ให้เราเข้าใจพื้นฐานของ maven

Maven คืออะไร?

Maven เป็นเครื่องมือการจัดการโครงการที่พัฒนาขึ้นเพื่อช่วยจัดการโครงการที่พัฒนาโดยใช้ภาษา JVM เช่น Java และ Scala งานหลักของเครื่องมือการจัดการโครงการ ได้แก่

  1. สร้างซอร์สโค้ด
  2. การทดสอบซอร์สโค้ด
  3. บรรจุใส่ขวดโหลหรือหูหิ้ว
  4. กำลังสร้างเอกสารจาวา
  5. จัดการการพึ่งพา

ตอนนี้เรามาดำเนินการต่อไปและดูวิธีการติดตั้ง Maven บนเครื่องของเรา

  1. เปิดhttps://maven.apache.org/ในเบราว์เซอร์ของคุณ
  2. ไปที่ส่วนดาวน์โหลดและดาวน์โหลดโฟลเดอร์ zip เวอร์ชัน maven ล่าสุดแล้วแตกไฟล์
  3. ตั้งค่าตัวแปรพาธสภาพแวดล้อม เพิ่มJAVA_HOMEและMAVEN_HOME
  4. เพิ่มเส้นทาง maven ในตัวแปรสภาพแวดล้อม เช่นF:\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin

พื้นที่เก็บข้อมูล Maven:

Maven Repository เป็นไดเร็กทอรีของไฟล์ jar ที่บรรจุด้วย pom.xml Maven ค้นหาการอ้างอิงในที่เก็บ ที่เก็บ maven มีสามประเภท

  1. พื้นที่เก็บข้อมูลในเครื่อง
  2. พื้นที่เก็บข้อมูลกลาง
  3. พื้นที่เก็บข้อมูลระยะไกล

นอกจากนี้ เราสามารถเปลี่ยนตำแหน่งของที่เก็บในเครื่องในไฟล์ settings.xml ซึ่งอยู่ใน MAVEN_HOME/conf/settings.xml ตัวอย่าง: E:\apache-maven-3.1.1\conf\settings.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"   
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
  <!-- localRepository  
   | The path to the local repository maven will use to store artifacts.  
   |  
   | Default: ${user.home}/.m2/repository  
  <localRepository>/path/to/local/repo</localRepository>  
  -->  
</settings>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"   
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
   <localRepository>e:/mavenlocalrepository</localRepository>  
</settings>

ที่เก็บส่วนกลางประกอบด้วยไลบรารีทั่วไปจำนวนมากที่สามารถดูได้จาก URL นี้http://search.maven.org/#browse.

Maven Remote Repository: Maven Remote Repository ตั้งอยู่บนเว็บ ไลบรารีบางส่วนอาจหายไปจากที่เก็บส่วนกลาง เช่น ไลบรารี JBoss เป็นต้น ดังนั้น เราจำเป็นต้องกำหนดรีโมตที่เก็บในไฟล์ pom.xml

โครงสร้างโครงการ Maven:

ตอนนี้ให้เราเข้าใจโครงสร้างโครงการ Maven เมื่อคุณสร้างโปรเจ็กต์ maven คุณจะเห็นโฟลเดอร์ชื่อ

  1. src — source — ซึ่งเป็นรูทของซอร์สโค้ดแอปพลิเคชันของเราและการทดสอบหน่วยแอปพลิเคชัน
  2. src/main/java — ซึ่งมีซอร์สโค้ดของแอปพลิเคชันของเรา รหัสการผลิตทั้งหมดที่เราเขียนไปยังแอปพลิเคชันของเราจะอยู่ในโฟลเดอร์นี้
  3. src/main/resources — ที่ที่เราเก็บไฟล์สแตติกทั้งหมด เราใช้ในโครงการของเรา ตัวอย่างapplication.propertiesไฟล์ XML ไฟล์ CSV เป็นต้น
  4. หากคุณกำลังพัฒนาเว็บแอปพลิเคชัน ไฟล์ html และ javascript ทั้งหมดจะอยู่ภายใต้โฟลเดอร์นี้
  5. src/test/java — ที่นี่ ที่เราเขียนการทดสอบหน่วย และการทดสอบการรวมระบบสำหรับแอปพลิเคชันของเรา
  6. pom.xml — มันมีข้อมูลเมตาของการพึ่งพาโครงการ
  7. เป้าหมาย — ในโฟลเดอร์นี้ maven เก็บไฟล์คลาสจาวาที่คอมไพล์แล้วทั้งหมด

POM มีข้อมูลเมตาของโครงการและยังรับผิดชอบในการจัดการการอ้างอิงเพื่อกำหนดค่าปลั๊กอินซึ่งช่วยเราในการทำงานซ้ำ ๆ โดยอัตโนมัติ นี่คือ pom.xml พื้นฐาน

<project xmlns="http://maven.apache.org/POM/4.0.0"   
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   
http://maven.apache.org/xsd/maven-4.0.0.xsd">  

  <modelVersion>4.0.0</modelVersion>  
  <groupId>com.maven.application</groupId>  
  <artifactId>my-app</artifactId>  
  <version>1</version>  
</project>

  • เวอร์ชันของโมเดล — เวอร์ชันของโมเดลจะถูกตั้งค่าเป็น 4.0.0 เสมอ เว้นแต่คุณจะเปลี่ยนเป็นเวอร์ชัน maven อื่น ตัวอย่างเช่น เวอร์ชันที่สูงกว่า 3.0
  1. ไฟล์ปอมอย่างง่าย
  2. ไฟล์ซุปเปอร์ปอม
  3. ไฟล์ pom ที่มีประสิทธิภาพ

ไฟล์ Super pom: คุณสามารถค้นหาไฟล์ super pom ได้ในไดเร็กทอรีการติดตั้ง maven ใต้พาธ lib และภายในไฟล์ jar — maven-model-builder เราจะพบแพ็คเกจชื่อ org

ไฟล์ pom ที่มีประสิทธิภาพ:ไฟล์ pom ที่มีประสิทธิภาพนั้นไม่ใช่อะไรนอกจากการรวมกันของไฟล์ pom ธรรมดาและไฟล์ super pom เป็นเพียงวิธีการตรวจสอบข้อมูลทั้งหมดของไฟล์ pom.xml ในที่เดียว หากต้องการดูไฟล์ pom ที่มีประสิทธิภาพ ให้ไปที่ประเภทเทอร์มินัล maven

mvn-help: effective-pom

Maven มีการพึ่งพาสองประเภท

  1. การพึ่งพาสแน็ปช็อต: การพึ่งพาสแน็ปช็อตหมายถึงโครงการที่อยู่ระหว่างการพัฒนาที่ใช้งานอยู่และไม่เสถียร
  2. การพึ่งพาการเผยแพร่: เมื่อโครงการเสร็จสมบูรณ์แล้วจะมีการเผยแพร่

เราสามารถควบคุมการมองเห็นของการพึ่งพา maven โดยใช้ขอบเขตการพึ่งพา ขอบเขตมี 5 ประเภท

  1. คอมไพล์: นี่คือขอบเขตเริ่มต้นสำหรับการขึ้นต่อกันทั้งหมด และการขึ้นต่อกันที่ทำเครื่องหมายด้วยการคอมไพล์มีอยู่ใน classpath ของโครงการ
  2. จัดเตรียม: การพึ่งพาซึ่งกำหนดขอบเขตจะถูกจัดเตรียม ณ รันไทม์โดย jdk หรือเว็บเซิร์ฟเวอร์
  3. รันไทม์: ตามชื่อที่บ่งบอกว่าการขึ้นต่อกันที่ทำเครื่องหมายด้วยรันไทม์จะใช้งานได้เฉพาะที่รันไทม์เท่านั้น แต่จะไม่มีในเวลาคอมไพล์
  4. ทดสอบ: การพึ่งพาเหล่านี้มีให้เฉพาะในขณะที่เขียนและดำเนินการทดสอบเท่านั้น
  5. ขอบเขตของระบบ: สิ่งนี้คล้ายกับขอบเขตที่ให้มา แต่ข้อแตกต่างเพียงอย่างเดียวคือเราได้กล่าวถึงตำแหน่งที่เราสามารถค้นหาการพึ่งพาในระบบได้อย่างชัดเจน แทนที่จะใช้ JDK หรือเว็บเซิร์ฟเวอร์ที่ให้การพึ่งพานี้ขณะรันไทม์ เราจัดเตรียมพาธของระบบที่ maven สามารถค้นหาการพึ่งพานี้ได้ เราสามารถระบุเส้นทางโดยใช้เส้นทางของระบบ

วงจรชีวิตการสร้าง Maven แบ่งออกเป็น 3 ขั้นตอน:

  1. ค่าเริ่มต้น — เป็นส่วนหนึ่งของขั้นตอนนี้ maven ทำงานหลายอย่าง
  2. maven อ่าน pom.xml และตรวจสอบว่าเรามี xml ที่ถูกต้องหรือไม่
  3. จากนั้น maven จะรวบรวมซอร์สโค้ดของเราและสร้างไฟล์คลาสและจัดเก็บไว้ในโฟลเดอร์เป้าหมาย
  4. จากนั้นในขั้นตอนการทดสอบซึ่งเป็นส่วนหนึ่งของการทดสอบ maven รันการทดสอบหน่วยภายในโครงการ
  5. แพ็คเกจ — เป็นส่วนหนึ่งของแพ็คเกจ maven ทำการแพ็คเกจซอร์สโค้ดเป็นสิ่งประดิษฐ์ที่เราเลือก เช่น ไฟล์ jar หรือ war หรือ ear หรือ zip
  6. การทดสอบการรวม — หากโครงการของเรามีการทดสอบการรวมและดำเนินการ
  7. ตรวจสอบ — maven ตรวจสอบการทดสอบการรวมซึ่งรันในเฟสก่อนหน้านี้ว่าสำเร็จหรือไม่
  8. ติดตั้ง — maven จะติดตั้งแพ็คเกจที่สร้างขึ้นในที่เก็บในเครื่อง
  9. ปรับใช้ — หลังจากการติดตั้ง maven จะปรับใช้ในพื้นที่เก็บข้อมูลระยะไกล
  10. 2. ทำความสะอาด:ขั้นตอนนี้มีหน้าที่หลักในการล้างคลาสจาวาที่คอมไพล์แล้วหรือข้อมูลเมตาที่สร้างขึ้น ตัวอย่าง: mvn การติดตั้งใหม่ทั้งหมด

    3. ไซต์:รับผิดชอบในการสร้างเอกสารจาวาที่มีอยู่ในโครงการของเรา

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

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

    คำถามสัมภาษณ์ตามสตรีม Java8 ที่พบบ่อยที่สุด — ตอนที่ 1 วิธีที่ง่ายที่สุดในการเข้าถึงฐานข้อมูลใน JAVA จับข้อยกเว้นหลายข้อใน การเขียนโค้ด Java: ค้นหาหมายเลข Fibonacci ที่ n ใน JavaScript Real Sites ที่จ่าย $50 ถึง $100 ต่อชั่วโมงสำหรับการพิสูจน์อักษรเธรดหนังสือ และการประมวลผลหลายส่วนใน Python อธิบาย