mvn clean install เทียบกับ deploy เทียบกับ release


133

ฉันเพิ่งเรียนรู้ maven และเมื่อเร็ว ๆ นี้เราจำเป็นต้องไปมากขึ้นเรื่อย ๆ ฉันต้องการทราบความแตกต่างระหว่าง

mvn clean install

mvn release

mvn deploy

กรุณาอธิบายให้ละเอียดที่สุด

คำตอบ:


223

clean, installและdeploy ขั้นตอนที่ถูกต้องขั้นตอนวงจรชีวิตและการเรียกพวกเขาจะเรียกทุกขั้นตอนก่อนหน้านี้พวกเขาและเป้าหมายผูกพันกับขั้นตอนเหล่านี้

mvn ล้างการติดตั้ง

คำสั่งนี้เรียกใช้cleanเฟสจากนั้นinstallเฟสตามลำดับ:

  • clean: ลบไฟล์ที่สร้างในเวลาสร้างในไดเร็กทอรีของโปรเจ็กต์ ( targetโดยค่าเริ่มต้น)
  • install: ติดตั้งแพ็กเกจลงในที่เก็บโลคัลเพื่อใช้เป็นการอ้างอิงในโปรเจ็กต์อื่นในเครื่อง

mvn ปรับใช้

คำสั่งนี้เรียกใช้deployเฟส:

  • deploy: สำเนาแพคเกจสุดท้ายไปที่ระยะไกลพื้นที่เก็บข้อมูลสำหรับใช้งานร่วมกันกับนักพัฒนาอื่น ๆ และโครงการ

mvn ปล่อย

นี่ไม่ใช่เฟสที่ถูกต้องหรือเป้าหมายดังนั้นจะไม่ทำอะไรเลย แต่ถ้าหมายถึงMaven Release Pluginที่ใช้ในการจัดการรีลีสโดยอัตโนมัติ ปล่อยโครงการจะทำในสองขั้นตอนและprepare performตามเอกสาร:

การเตรียมรีลีสจะดำเนินไปตามขั้นตอนของรีลีสต่อไปนี้:

  • ตรวจสอบว่าไม่มีการเปลี่ยนแปลงที่ผิดพลาดในแหล่งที่มา
  • ตรวจสอบว่าไม่มีการอ้างอิง SNAPSHOT
  • เปลี่ยนเวอร์ชันใน POMs จาก x-SNAPSHOT เป็นเวอร์ชันใหม่ (คุณจะได้รับแจ้งให้ใช้เวอร์ชัน)
  • แปลงข้อมูล SCM ใน POM เพื่อรวมปลายทางสุดท้ายของแท็ก
  • เรียกใช้การทดสอบโปรเจ็กต์กับ POM ที่แก้ไขเพื่อยืนยันว่าทุกอย่างทำงานได้ดี
  • ยอมรับ POM ที่แก้ไข
  • ติดแท็กโค้ดใน SCM ด้วยชื่อเวอร์ชัน (สิ่งนี้จะได้รับพร้อมท์)
  • Bump เวอร์ชันใน POMs เป็นค่าใหม่ y-SNAPSHOT (ค่าเหล่านี้จะได้รับแจ้งด้วย)
  • ยอมรับ POM ที่แก้ไข

แล้ว:

การดำเนินการรีลีสจะรันขั้นตอนการรีลีสต่อไปนี้:

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

ดูสิ่งนี้ด้วย


1
คุณช่วยชี้แจงสิ่งนี้ได้ไหม: นี่ไม่ใช่ระยะที่ถูกต้องหรือเป้าหมายดังนั้นจะไม่ทำอะไรเลย แต่ถ้าหมายถึง Maven Release Plugin ถ้าไม่ใช่ทั้งเฟสหรือเป้าหมายเราจะเรียกมันว่าอย่างไร?
gvlasov

26
  • mvn installจะใส่โปรเจ็กต์ maven ที่คุณทำแพ็กเกจไว้ในที่เก็บโลคัลสำหรับแอปพลิเคชันในระบบโดยใช้โปรเจ็กต์ของคุณเป็นตัวอ้างอิง
  • mvn release โดยทั่วไปจะใส่รหัสปัจจุบันของคุณในแท็กบน SCM ของคุณเปลี่ยนเวอร์ชันของคุณในโครงการของคุณ
  • mvn deployจะนำโปรเจ็กต์ maven ที่ทำแพ็กเกจของคุณไปไว้ในที่เก็บระยะไกลเพื่อแบ่งปันกับนักพัฒนารายอื่น

แหล่งข้อมูล:

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