Birçok modül ve pom.xml
dosya içeren büyük bir Maven projem var . Proje değişti ve pom'ların bazı gereksiz bağımlılıklar içerdiğinden şüpheleniyorum. Kullanılmayan bağımlılıkları bir pom'dan kaldıran bir komut var mı?
Birçok modül ve pom.xml
dosya içeren büyük bir Maven projem var . Proje değişti ve pom'ların bazı gereksiz bağımlılıklar içerdiğinden şüpheleniyorum. Kullanılmayan bağımlılıkları bir pom'dan kaldıran bir komut var mı?
Yanıtlar:
Maven Bağımlılık eklentisi , özellikle yardımcı olacaktır dependency:analyze
golü:
dependency:analyze
bu projenin bağımlılıklarını analiz eder ve hangilerinin kullanıldığını belirler: kullanılmış ve beyan edilmemiş; kullanılmamış ve beyan edilmiş.
Bazı temizlik işlemlerine yardımcı olabilecek bir başka şey de Maven Proje Bilgi Raporları Eklentisi'nin Bağımlılık Yakınsama raporudur .
ignoreNonCompile
seçenek true olarak ayarlanabilir.
Kullanabilirsiniz dependency:analyze -DignoreNonCompile
Bu, kullanılmış bildirilmemiş ve kullanılmayan beyan edilmiş bağımlılıkların bir listesini yazdırır ( kullanılmayan bağımlılık analizi için runtime
/ provided
/ test
/ system
kapsamlarını yok sayarken).
Bunu kullanırken dikkatli olun , kullanılan bazı kütüphaneler kullanılmamış runtime
olarak kabul edilir!
Diğerlerinin söylediği gibi, bağımlılığı kullanabilirsiniz : hangi bağımlılıkların kullanıldığını ve bildirildiğini, kullanıldığını ve bildirilmediğini veya kullanılmadığını ve bildirildiğini bulmak için hedefi analiz edin . Ayrıca bağımlılık bulabilirsiniz : analyze-dep-mgt , bağımlılık yönetiminizdeki uyumsuzlukları aramak için yararlıdır.
İstenmeyen doğrudan bağımlılıkları POM'nizden kaldırabilirsiniz, ancak bunlar üçüncü taraf kavanozlar tarafından tanıtıldıysa, <exclusions>
etiketleri üçüncü taraf kavanozları hariç tutmak için bir bağımlılıkta kullanabilirsiniz ( ayrıntılar ve bazı tartışmalar için Bağımlılık Hariç Tutma bölümüne bakın ) . Ortak bağımlılığı Bahar bağımlılığından hariç tutan bir örnek:
<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 Dependency Plugin'e baktınız mı ? Bu sizin için bir şey kaldırmaz, ancak analizi kendiniz yapmanızı sağlayan araçlar vardır. Özellikle düşünüyorum
mvn dependency:tree
Benzer bir sorun yaşadım ve benim için bağımlılıkları ortadan kaldıran bir senaryo yazmaya karar verdim. Bunu kullanarak, bağımlılıkların yarısından fazlasını kolayca uzaklaştırdım.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze
. Sadece her bağımlılığı kaldırmaya çalışır ve çalışıp mvn install
çalışmadığını kontrol eder .