Saya punya proyek Maven besar dengan banyak modul dan banyak pom.xml
file. Proyek telah berubah dan saya menduga pom mengandung beberapa dependensi yang tidak perlu. Apakah ada perintah yang menghapus dependensi yang tidak digunakan dari pom?
Saya punya proyek Maven besar dengan banyak modul dan banyak pom.xml
file. Proyek telah berubah dan saya menduga pom mengandung beberapa dependensi yang tidak perlu. Apakah ada perintah yang menghapus dependensi yang tidak digunakan dari pom?
Jawaban:
The Maven Ketergantungan Plugin akan membantu, terutama dependency:analyze
tujuan:
dependency:analyze
menganalisis ketergantungan proyek ini dan menentukan mana yang: digunakan dan dideklarasikan; digunakan dan tidak dideklarasikan; tidak digunakan dan dideklarasikan.
Hal lain yang mungkin membantu untuk melakukan pembersihan adalah laporan Ketergantungan Konvergensi dari Plugin Maven Project Info Reports .
ignoreNonCompile
opsi dapat disetel ke true.
Kamu bisa memakai dependency:analyze -DignoreNonCompile
Ini akan mencetak daftar dependensi yang dideklarasikan dan tidak digunakan yang digunakan (sambil mengabaikan runtime
/ provided
/ test
/ system
cakupan untuk analisis dependensi yang tidak digunakan.)
Hati-hati saat menggunakan ini, beberapa perpustakaan yang digunakan di runtime
dianggap tidak digunakan!
Seperti yang dikatakan orang lain, Anda dapat menggunakan dependensi: menganalisis tujuan untuk menemukan dependensi mana yang digunakan dan dideklarasikan, digunakan dan tidak dideklarasikan, atau tidak digunakan dan dideklarasikan. Anda juga dapat menemukan ketergantungan: analisis-dep-mgt berguna untuk mencari ketidaksesuaian di bagian Manajemen ketergantungan Anda.
Anda cukup menghapus dependensi langsung yang tidak diinginkan dari POM Anda, tetapi jika itu diperkenalkan oleh guci pihak ketiga, Anda dapat menggunakan <exclusions>
tag dalam dependensi untuk mengecualikan guci pihak ketiga (lihat bagian berjudul Pengecualian Ketergantungan untuk detail dan beberapa diskusi) . Berikut adalah contoh tidak termasuk penebangan bersama dari ketergantungan 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>
Sudahkah Anda melihat Plugin Ketergantungan Maven ? Itu tidak akan menghapus barang untuk Anda tetapi memiliki alat untuk memungkinkan Anda melakukan analisis sendiri. Saya terutama memikirkan
mvn dependency:tree
Saya memiliki masalah serupa dan memutuskan untuk menulis skrip yang menghapus dependensi untuk saya. Dengan menggunakan itu saya mendapatkan lebih dari setengah dependensi dengan mudah.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze
. Itu hanya mencoba untuk menghapus setiap ketergantungan dan memeriksa apakah mvn install
berfungsi.