Maven - ที่เก็บ

Maven Repository คืออะไร?

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

ที่เก็บ Maven มีสามประเภท ภาพประกอบต่อไปนี้จะให้แนวคิดเกี่ยวกับทั้งสามประเภทนี้

  • local
  • central
  • remote

ที่เก็บในเครื่อง

Maven local repository คือตำแหน่งโฟลเดอร์บนเครื่องของคุณ จะถูกสร้างขึ้นเมื่อคุณเรียกใช้คำสั่ง maven เป็นครั้งแรก

Maven local repository เก็บการอ้างอิงทั้งหมดของโปรเจ็กต์ของคุณ (ไลบรารี jars, plugin jar เป็นต้น) เมื่อคุณรันบิลด์ Maven Maven จะดาวน์โหลดไหพึ่งพาทั้งหมดลงในที่เก็บในเครื่องโดยอัตโนมัติ ช่วยหลีกเลี่ยงการอ้างอิงถึงการอ้างอิงที่จัดเก็บไว้ในเครื่องระยะไกลทุกครั้งที่สร้างโครงการ

Maven local repository โดยค่าเริ่มต้นจะถูกสร้างโดย Maven ในไดเร็กทอรี% USER_HOME% หากต้องการแทนที่ตำแหน่งเริ่มต้นให้กล่าวถึงเส้นทางอื่นในไฟล์ Maven settings.xml ที่มีอยู่ในไดเร็กทอรี% M2_HOME% \ conf

<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>C:/MyLocalRepository</localRepository>
</settings>

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

ที่เก็บกลาง

Maven central repository เป็นพื้นที่เก็บข้อมูลที่จัดทำโดยชุมชน Maven ประกอบด้วยไลบรารีที่ใช้กันทั่วไปจำนวนมาก

เมื่อ Maven ไม่พบการอ้างอิงใด ๆ ในที่เก็บภายในเครื่องจะเริ่มค้นหาในที่เก็บส่วนกลางโดยใช้ URL ต่อไปนี้ - https://repo1.maven.org/maven2/

แนวคิดหลักของที่เก็บกลางมีดังนี้ -

  • ที่เก็บนี้จัดการโดยชุมชน Maven
  • ไม่จำเป็นต้องกำหนดค่า
  • ต้องใช้อินเทอร์เน็ตเพื่อค้นหา

ในการเรียกดูเนื้อหาของที่เก็บ maven ส่วนกลางชุมชน maven ได้ให้ URL - https://search.maven.org/#browse. การใช้ไลบรารีนี้นักพัฒนาสามารถค้นหาไลบรารีที่มีอยู่ทั้งหมดในที่เก็บส่วนกลาง

ที่เก็บระยะไกล

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

ตัวอย่างเช่นการใช้ POM.xml ที่กล่าวถึงด้านล่าง Maven จะดาวน์โหลดการพึ่งพา (ไม่มีในที่เก็บส่วนกลาง) จากที่เก็บระยะไกลที่กล่าวถึงใน 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.companyname.projectgroup</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>
   <dependencies>
      <dependency>
         <groupId>com.companyname.common-lib</groupId>
         <artifactId>common-lib</artifactId>
         <version>1.0.0</version>
      </dependency>
   <dependencies>
   <repositories>
      <repository>
         <id>companyname.lib1</id>
         <url>http://download.companyname.org/maven2/lib1</url>
      </repository>
      <repository>
         <id>companyname.lib2</id>
         <url>http://download.companyname.org/maven2/lib2</url>
      </repository>
   </repositories>
</project>

ลำดับการค้นหาการพึ่งพา Maven

เมื่อเรารันคำสั่งสร้าง Maven Maven จะเริ่มมองหาไลบรารีการพึ่งพาตามลำดับต่อไปนี้ -

  • Step 1 - การพึ่งพาการค้นหาในที่เก็บโลคัลหากไม่พบให้ย้ายไปที่ขั้นตอนที่ 2 อื่นดำเนินการประมวลผลเพิ่มเติม

  • Step 2 - การพึ่งพาการค้นหาในที่เก็บส่วนกลางหากไม่พบและที่เก็บ / ที่เก็บระยะไกลถูกกล่าวถึงจากนั้นย้ายไปยังขั้นตอนที่ 4 มิฉะนั้นจะถูกดาวน์โหลดไปยังที่เก็บในเครื่องเพื่อใช้อ้างอิงในอนาคต

  • Step 3 - หากไม่ได้กล่าวถึงที่เก็บระยะไกล Maven จะหยุดการประมวลผลและแสดงข้อผิดพลาด (ไม่พบการพึ่งพา)

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