ฉันมีโครงการ Maven ขนาดใหญ่ที่มีโมดูลมากมายและอีกมากมาย pom.xml
ไฟล์โครงการมีการเปลี่ยนแปลงและฉันสงสัยว่าปอมมีการขึ้นต่อกันที่ไม่จำเป็นบางอย่าง มีคำสั่งที่ลบการอ้างอิงที่ไม่ได้ใช้ออกจาก pom หรือไม่?
ฉันมีโครงการ Maven ขนาดใหญ่ที่มีโมดูลมากมายและอีกมากมาย pom.xml
ไฟล์โครงการมีการเปลี่ยนแปลงและฉันสงสัยว่าปอมมีการขึ้นต่อกันที่ไม่จำเป็นบางอย่าง มีคำสั่งที่ลบการอ้างอิงที่ไม่ได้ใช้ออกจาก pom หรือไม่?
คำตอบ:
Maven พึ่งพาปลั๊กอินจะช่วยโดยเฉพาะอย่างยิ่งdependency:analyze
เป้าหมาย:
dependency:analyze
วิเคราะห์การพึ่งพาของโครงการนี้และกำหนดว่า: ใช้และประกาศ; ใช้และไม่ได้ประกาศ; ไม่ได้ใช้และประกาศ
สิ่งที่อาจช่วยให้ทำล้างบางก็คือรายงานการพึ่งพาบรรจบจากMaven โครงการข้อมูลรายงานปลั๊กอิน
ignoreNonCompile
ตัวเลือกสามารถตั้งค่าเป็นจริง
คุณสามารถใช้ได้ dependency:analyze -DignoreNonCompile
สิ่งนี้จะพิมพ์รายการของการอ้างอิงที่ไม่ได้ประกาศและไม่ได้ประกาศใช้ (ในขณะที่ละเว้นruntime
/ provided
/ test
/ system
ขอบเขตสำหรับการวิเคราะห์การพึ่งพาที่ไม่ได้ใช้)
โปรดใช้ความระมัดระวังขณะใช้งานบางไลบรารีที่ใช้ที่runtime
ถือว่าไม่ได้ใช้
ดังที่คนอื่น ๆ พูดคุณสามารถใช้การพึ่งพา: วิเคราะห์เป้าหมายเพื่อค้นหาการพึ่งพาที่ถูกใช้และประกาศใช้และไม่ประกาศหรือไม่ได้ใช้และประกาศ คุณอาจพบว่าพึ่งพา: analy-dep-mgtมีประโยชน์ในการค้นหาไม่ตรงกันในส่วนการพึ่งพาการจัดการของคุณ
คุณสามารถลบการอ้างอิงโดยตรงที่ไม่ต้องการออกจาก POM ของคุณได้ แต่ถ้ามีการแนะนำให้ใช้กับขวดของบุคคลที่สามคุณสามารถใช้<exclusions>
แท็กในการอ้างอิงเพื่อแยกขวดของบุคคลที่สามออก (ดูหัวข้อการยกเว้นการพึ่งพาสำหรับรายละเอียดและการสนทนา) . นี่คือตัวอย่างที่ไม่รวมการบันทึกทั่วไปจากการขึ้นต่อกันของ Spring:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.5</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
คุณดูที่ปลั๊กอินการพึ่งพา Mavenหรือไม่? สิ่งนั้นจะไม่ลบสิ่งต่าง ๆ ให้คุณ แต่มีเครื่องมือที่ช่วยให้คุณทำการวิเคราะห์ด้วยตัวเอง ฉันกำลังคิดอย่างยิ่ง
mvn dependency:tree
ฉันมีปัญหาแบบเดียวกันและตัดสินใจที่จะเขียนสคริปต์ที่ลบการอ้างอิงสำหรับฉัน การใช้ที่ฉันได้รับมากกว่าครึ่งพึ่งพาค่อนข้างง่าย
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze
หมายเหตุสคริปต์นี้ไม่ได้ใช้ มันเพียงแค่พยายามลบการอ้างอิงทั้งหมดและตรวจสอบว่าmvn install
ทำงานหรือไม่