อะไรคือความแตกต่างระหว่างmvn clean package
และmvn clean install
? เมื่อฉันรันทั้งสองคำสั่งเหล่านี้พวกเขาทั้งคู่ดูเหมือนจะทำสิ่งเดียวกัน
อะไรคือความแตกต่างระหว่างmvn clean package
และmvn clean install
? เมื่อฉันรันทั้งสองคำสั่งเหล่านี้พวกเขาทั้งคู่ดูเหมือนจะทำสิ่งเดียวกัน
คำตอบ:
ทั้งคู่จะทำความสะอาด นั่นหมายความว่าพวกเขาจะลบโฟลเดอร์เป้าหมาย คำถามจริงคือความแตกต่างระหว่างแพ็คเกจและติดตั้งคืออะไร
package
จะรวบรวมรหัสของคุณและบรรจุมัน ตัวอย่างเช่นถ้า pom ของคุณบอกว่าโครงการคือ jar มันจะสร้าง jar ให้คุณเมื่อคุณจัดทำมันและวางไว้ที่อื่นในไดเรกทอรีเป้าหมาย (โดยค่าเริ่มต้น)
install
จะคอมไพล์และแพ็คเกจ แต่มันก็จะนำแพคเกจในพื้นที่เก็บข้อมูลในพื้นที่ของคุณ สิ่งนี้จะทำให้โครงการอื่น ๆ สามารถอ้างถึงและคว้ามันจากที่เก็บในพื้นที่ของคุณ
mvn clean install
mvn package
ทำความสะอาดอะไรบ้าง (โดยทั่วไปในทั้งสองคำสั่ง) - ลบไฟล์ทั้งหมดที่สร้างโดยบิลด์ก่อนหน้า
เมื่อมาถึงความแตกต่างระหว่างแพ็คเกจคำสั่งและการติดตั้งคุณต้องเข้าใจวงจรชีวิตของโครงการ maven ก่อน
เหล่านี้เป็นขั้นตอนวงจรชีวิตเริ่มต้นใน Maven
Maven ทำงานอย่างไรถ้าคุณเรียกใช้คำสั่งสำหรับเฟสใด ๆ ของรอบการทำงานมันจะประมวลผลแต่ละช่วงวงจรชีวิตเริ่มต้นตามลำดับก่อนดำเนินการคำสั่งเอง
คำสั่งของการดำเนินการ
ตรวจสอบ >> คอมไพล์ >> ทดสอบ (เลือกได้) >> แพ็คเกจ >> ตรวจสอบ >> ติดตั้ง >> ปรับใช้
ดังนั้นเมื่อคุณรันแพ็คเกจคำสั่งmvnมันจะรันคำสั่งสำหรับเฟสวัฏจักรชีวิตทั้งหมดจนถึงแพ็คเกจ
ตรวจสอบ >> คอมไพล์ >> ทดสอบ (อุปกรณ์เสริม) >> แพ็คเกจ
และสำหรับการติดตั้ง mvnมันจะรันคำสั่งสำหรับทุกช่วงอายุการใช้งานจนถึงการติดตั้งซึ่งรวมถึงแพ็คเกจด้วย
ตรวจสอบ >> คอมไพล์ >> ทดสอบ (อุปกรณ์เสริม) >> แพ็คเกจ >> ตรวจสอบ >> ติดตั้ง
ดังนั้นสิ่งที่มีความหมายอย่างมีประสิทธิภาพคือคำสั่งติดตั้งทำทุกอย่างที่คำสั่งแพ็คเกจทำและอื่น ๆ (ติดตั้งแพ็กเกจลงในที่เก็บโลคัลสำหรับใช้เป็นการอ้างอิงในโปรเจ็กต์อื่น ๆ แบบโลคัล)
ที่มา: การอ้างอิงวงจรชีวิต Maven
แพ็คเกจจะสร้าง Jar / war ตามไฟล์ POM การติดตั้งจะติดตั้งไฟล์ jar ที่สร้างไปยังที่เก็บในเครื่องสำหรับการอ้างอิงอื่น ๆ ถ้ามี
เฟสการติดตั้งมาหลังจากเฟสแพ็กเกจ
แพ็คเกจและการติดตั้งเป็นขั้นตอนต่าง ๆ ในวงจรการสร้าง maven ระยะแพคเกจจะดำเนินการทุกขั้นตอนก่อนที่จะ & มันจะหยุดกับบรรจุภัณฑ์โครงการเป็นขวด เฟสการติดตั้งในทำนองเดียวกันจะดำเนินการเฟสก่อนหน้าทั้งหมดและในที่สุดก็ติดตั้งโครงการในพื้นที่สำหรับโครงการขึ้นอยู่กับอื่น ๆ
สำหรับการทำความเข้าใจวงจรชีวิตของ Maven โปรดไปที่ลิงค์ต่อไปนี้https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html
package
จะเพิ่มแพคเกจjar
หรือwar
ที่คุณ target
โฟลเดอร์เราสามารถตรวจสอบได้เมื่อเราล้างโฟลเดอร์เป้าหมาย (ใช้ mvn clean
) mvn package
และเรียกใช้
install
จะทำทุกสิ่งที่package
ทำได้นอกจากนี้มันจะเพิ่มแพ็คเกจjar
หรือwar
ในที่เก็บภายในเช่นกัน เราสามารถยืนยันได้โดยการตรวจสอบใน.m2
โฟลเดอร์ของคุณ
package
install