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 จะหยุดการประมวลผลและแสดงข้อผิดพลาด (ไม่พบการพึ่งพา)