Maven Snapshot Repository เทียบกับ Release Repository


104

อะไรคือความแตกต่างระหว่างSnapshot Repository และRelease Repository?

สิ่งนี้อ้างอิงถึงการตั้งค่า Repositories (เช่น Artifactory, Nexus เป็นต้น)


สิ่งนี้เกี่ยวข้องกับอะไร? การควบคุมแหล่งที่มา? มันไม่ใช่คำศัพท์มาตรฐานเท่าที่ฉันรู้ แต่ฉันอาจเดาได้ว่าสแน็ปช็อตถูกใช้เป็นรูปภาพของแผนผังแหล่งที่มาในช่วงเวลาหนึ่ง (อาจใช้สำหรับการใช้งานภายใน) ในขณะที่รีลีสใช้สำหรับโค้ดที่เผยแพร่ภายนอก
1800 ข้อมูล

ดูเหมือนคุณกำลังถามเกี่ยวกับ Maven (เครื่องมือสร้าง) บางทีคุณควรใส่ไว้ในคำถามและแท็ก
bendin

คำตอบ:


67

ปล่อย Artifacts

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

Snapshot Artifacts

สแนปชอตจับภาพงานที่กำลังดำเนินการและใช้ในระหว่างการพัฒนา สิ่งประดิษฐ์สแนปชอตมีทั้งหมายเลขเวอร์ชันเช่น“ 1.3.0” หรือ“ 1.3” และการประทับเวลา ตัวอย่างเช่นสิ่งประดิษฐ์ snapshot สำหรับ commons-lang 1.3.0 อาจมีชื่อ commons-lang-1.3.0-20090314.182342-1.jar

นำมาจากrefcard


Sayat, Is 1.1.0.M5 หรือ1.1.0.M4 หนึ่งเวอร์ชันของภาพรวม?
Alexander Suraphel

4
สิ่งนี้กำหนดว่าสิ่งประดิษฐ์ของรีลีสและสแนปชอตคืออะไร แต่: จำเป็นต้องมีที่เก็บที่แตกต่างกันสองแห่งหรือไม่?
dna

1
พบข้อมูลที่เขียนได้ดีที่docs.oracle.com/middleware/1212/core/MAVEN/…
Yoav Epstein

1
สิ่งนี้ไม่ตอบคำถามคำถามเกี่ยวกับความแตกต่างระหว่างที่เก็บรีลีสและที่เก็บสแน็ปช็อต(ไม่ใช่อาร์ติแฟกต์)
mks-d

1
@ mks-d การสังเกตที่ดี แต่ก็ยากที่จะเข้าใจที่เก็บของบางสิ่งโดยไม่เข้าใจก่อนว่า "อะไร" นั้นคืออะไร :) stackoverflow.com/a/5901460
datv

86

รีลีสที่เก็บจะถือรีลีสและที่เก็บ Snapshot จะเก็บสแนปชอต ใน maven สแนปชอตถูกกำหนดให้เป็นสิ่งประดิษฐ์ที่มีเวอร์ชันที่ลงท้ายด้วย -SNAPSHOT เมื่อปรับใช้สแนปชอตจะเปลี่ยนเป็นการประทับเวลา ตามความหมายสแนปชอตสามารถเปลี่ยนแปลงได้การเผยแพร่จะไม่เปลี่ยนรูป นี่คือสาเหตุที่ Nexus ทำให้คุณจัดเก็บแยกกันเพราะโดยปกติแล้วคุณจะไม่สนใจว่าคุณจะสูญเสียสแนปชอต แต่คุณจะกังวลว่าคุณจะสูญเสียรุ่นต่างๆ ทำให้การล้างสแน็ปช็อตง่ายขึ้นมากในการจัดการด้วยวิธีนั้น


12
ขอบคุณสำหรับ"เมื่อนำไปใช้ภาพรวมจะกลายเป็นประทับเวลา"
datv

เมื่อฉันกำหนดค่างานบนเจนกินส์และใช้อัปโหลดอาร์ติแฟกต์ไปยัง nexus snapshot repo ฉันไม่เห็นสแนปชอตมากกว่าหนึ่งภาพ โดยทั่วไปเมื่อเราทำการเปลี่ยนแปลงในโปรเจ็กต์ & ทริกเกอร์การสร้างสิ่งประดิษฐ์ใหม่จะถูกสร้างขึ้น แม้ว่าสิ่งนี้จะเกิดขึ้น แต่ก็เปลี่ยนชื่อเป็น 1.0-SNAPSHOT เหมือนกัน แต่ควรตั้งชื่อเป็น 2.0-SNAPSHOT และอื่น ๆ .. ช่วยด้วย .. @Brian Fox
frp farhan

ฉันเคยใช้ในส่วนการสร้างโพสต์ของเจนกินส์ปรับใช้สิ่งประดิษฐ์กับที่เก็บ maven และกำหนดค่าเป็นที่เก็บสแนปชอตของ nexus
frp farhan

3

สแนปชอตเป็นความคิดที่ยิ่งใหญ่ในการให้หมายเลขเวอร์ชันเป็น -SNAPSHOTS ซึ่งอยู่ระหว่างการพัฒนาซึ่งสามารถเปลี่ยนแปลงได้ตลอดเวลา

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


สำหรับ"อยู่ระหว่างการพัฒนาสามารถเปลี่ยนแปลงได้ตลอดเวลา" (สำหรับ -SNAPSHOT)
datv

3

โดยปกติใน maven เรามีงานสร้างสองประเภท:

1) Snapshot builds : SNAPSHOT เป็นเวอร์ชันพิเศษที่ระบุสำเนาการปรับใช้ปัจจุบันไม่ใช่เวอร์ชันเฉพาะ Maven ตรวจสอบเวอร์ชันสำหรับทุกบิลด์ในที่เก็บระยะไกล การสร้างสแน็ปช็อตเป็นเพียงการสร้างการพัฒนา

2) Release builds : Release หมายถึงการลบ SNAPSHOT ที่ ID เวอร์ชันสำหรับบิลด์ นี่คือเวอร์ชันสร้างปกติ

อาร์ติแฟกต์สแนปชอตและอาร์ติแฟกต์รีลีสถูกพุชไปยังสแน็ปช็อตปล่อยที่เก็บตามลำดับ


0

SNAPSHOT ในที่นี้ไม่ได้หมายถึงสแนปชอตเดียวที่หยุดนิ่งและจะไม่เปลี่ยนแปลง SNAPSHOT ครอบคลุมสแนปชอตหลายรายการที่การปรับเปลี่ยนไม่ใหญ่พอสำหรับการแสดงด้วยหมายเลขเวอร์ชันใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.