ฉันเพิ่งเรียนรู้ maven และเมื่อเร็ว ๆ นี้เราจำเป็นต้องไปมากขึ้นเรื่อย ๆ ฉันต้องการทราบความแตกต่างระหว่าง
mvn clean install
mvn release
mvn deploy
กรุณาอธิบายให้ละเอียดที่สุด
ฉันเพิ่งเรียนรู้ maven และเมื่อเร็ว ๆ นี้เราจำเป็นต้องไปมากขึ้นเรื่อย ๆ ฉันต้องการทราบความแตกต่างระหว่าง
mvn clean install
mvn release
mvn deploy
กรุณาอธิบายให้ละเอียดที่สุด
คำตอบ:
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 ที่กำหนดไว้ล่วงหน้าเพื่อเผยแพร่โครงการ (โดยค่าเริ่มต้นปรับใช้ไซต์ปรับใช้)
mvn install
จะใส่โปรเจ็กต์ maven ที่คุณทำแพ็กเกจไว้ในที่เก็บโลคัลสำหรับแอปพลิเคชันในระบบโดยใช้โปรเจ็กต์ของคุณเป็นตัวอ้างอิงmvn release
โดยทั่วไปจะใส่รหัสปัจจุบันของคุณในแท็กบน SCM ของคุณเปลี่ยนเวอร์ชันของคุณในโครงการของคุณmvn deploy
จะนำโปรเจ็กต์ maven ที่ทำแพ็กเกจของคุณไปไว้ในที่เก็บระยะไกลเพื่อแบ่งปันกับนักพัฒนารายอื่นแหล่งข้อมูล: