“ การติดตั้งใหม่ทั้งหมด” แตกต่างจาก“ การติดตั้ง mvn” อย่างไร


คำตอบ:


214

cleanเป็นเฟสวัฏจักรการสร้างของตัวเอง (ซึ่งสามารถคิดว่าเป็นการกระทำหรืองาน) ใน Maven mvn clean installบอกให้ Maven ทำcleanขั้นตอนในแต่ละโมดูลก่อนเรียกใช้installเฟสสำหรับแต่ละโมดูล

สิ่งนี้จะเป็นการล้างไฟล์ที่รวบรวมใด ๆ ที่คุณมีตรวจสอบให้แน่ใจว่าคุณได้รวบรวมแต่ละโมดูลตั้งแต่เริ่มต้น


13
ฉันมักจะคิดว่าการติดตั้งรวมถึงการทำความสะอาดเป็นหนึ่งในขั้นตอน ... จนกว่าฉันจะเห็นสิ่งนี้
Junchen Liu

14
@shanyangqu น่าเศร้าที่ไม่มี cleanอยู่ในวงจรชีวิตที่แยกต่างหากดังนั้นจึงไม่เรียกว่าเป็นค่าเริ่มต้น
Powerlord

47

Maven ช่วยให้คุณระบุเป้าหมายหรือช่วงวัฏจักรชีวิตบนบรรทัดคำสั่ง (หรือทั้งสองอย่าง)

cleanและinstallมีสองขั้นตอนวงจรชีวิตที่แตกต่างกันซึ่งการประหารชีวิตปลั๊กอินที่แตกต่างกันมีความผูกพัน (ทั้งต่อค่าเริ่มต้นหรืออย่างชัดเจนใน pom.xml ของคุณ )

cleanเฟสต่อการประชุมจะหมายถึงการทำให้การสร้างทำซ้ำคือมันทำความสะอาดสิ่งที่ถูกสร้างขึ้นโดยสร้างก่อนหน้านี้ ในกรณีส่วนใหญ่มันเป็นเช่นนั้นโดยการโทรclean:cleanซึ่งจะลบไดเรกทอรีที่ถูกผูกไว้กับ${project.build.directory}(มักจะเรียกว่า "เป้าหมาย")


6
"ติดตั้ง" ไม่ใช่ระยะเวลาการใช้งาน เป็นระยะในวงจรชีวิตเริ่มต้น แม้ว่าจะมีวัฏจักร "สะอาด" แต่ AFAIK พารามิเตอร์นี้ระบุเฟส "สะอาด" ในวงจรชีวิต "สะอาด" ไม่ใช่วงจรชีวิต "สะอาด"
Puce

1
@Puce จริงฉันหมายถึง "เฟส" ไม่ใช่วงจร
ฌอนแพทริคฟลอยด์

38

คุณสามารถเรียกเป้าหมายได้มากกว่าหนึ่งเป้าหมายด้วย maven mvn clean installเรียกแรกแล้วclean installคุณต้องล้างข้อมูลด้วยตนเองเนื่องจากการล้างข้อมูลไม่ใช่เป้าหมายเป้าหมายมาตรฐานและไม่ได้ดำเนินการโดยอัตโนมัติในทุกการติดตั้ง

cleanลบโฟลเดอร์เป้าหมาย - มันจะลบไฟล์คลาสทั้งหมดเอกสาร java, jars, รายงานและอื่น ๆ หากคุณไม่ทำเช่นcleanนั้น maven จะ "ทำสิ่งที่ต้องทำ" เท่านั้นเช่นจะไม่รวบรวมคลาสเมื่อไฟล์ต้นฉบับที่เกี่ยวข้องไม่เปลี่ยนแปลง (โดยย่อ)

เราเรียกมันว่าเป้าหมายในมดและเป้าหมายใน maven


1
ฉันคิดว่าในบริบทนี้สะอาดและติดตั้งเป็นระยะเวลาวงจรไม่ใช่เป้าหมาย
JL_SO


4

เช่นเดียวกันสำหรับ @Andreas_D นอกจากนี้ถ้าคุณบอกว่าอัปเดต Spring จากรุ่น 1 เป็นรุ่นอื่นในโครงการของคุณโดยไม่ทำความสะอาดคุณจะต้องจบทั้งในสิ่งประดิษฐ์ของคุณ วิ่งเข้าไปในนี้มากเมื่อทำการพัฒนา Flex กับ Maven

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