मेरे पास कई मॉड्यूल और कई pom.xmlफाइलों के साथ एक बड़ी मावेन परियोजना है । परियोजना बदल गई है और मुझे संदेह है कि पोम के कुछ अनावश्यक निर्भरताएं हैं। क्या कोई ऐसा आदेश है जो किसी अप्रयुक्त निर्भरता को एक पोम से दूर करता है?
मेरे पास कई मॉड्यूल और कई pom.xmlफाइलों के साथ एक बड़ी मावेन परियोजना है । परियोजना बदल गई है और मुझे संदेह है कि पोम के कुछ अनावश्यक निर्भरताएं हैं। क्या कोई ऐसा आदेश है जो किसी अप्रयुक्त निर्भरता को एक पोम से दूर करता है?
जवाबों:
Maven निर्भरता प्लगइन में मदद मिलेगी, विशेष रूप से dependency:analyzeलक्ष्य:
dependency:analyzeइस परियोजना की निर्भरता का विश्लेषण करता है और निर्धारित करता है कि कौन हैं: उपयोग और घोषित; इस्तेमाल किया और अघोषित; अप्रयुक्त और घोषित।
एक और चीज जो कुछ सफाई करने में मदद कर सकती है वह है मावेन प्रोजेक्ट इंफो रिपोर्ट्स प्लगिन की डिपेंडेंसी कन्वर्जेंस रिपोर्ट ।
ignoreNonCompileविकल्प को सही पर सेट किया जा सकता है।
आप उपयोग कर सकते हैं dependency:analyze -DignoreNonCompile
यह इस्तेमाल किए गए अघोषित और अप्रयुक्त घोषित आश्रितों की सूची को प्रिंट करेगा (जबकि अप्रयुक्त आश्रित विश्लेषण के लिए runtime/ provided/ test/ systemscopes की अनदेखी )।
इसका उपयोग करते समय सावधान रहें , कुछ पुस्तकालयों का उपयोग runtimeअप्रयुक्त माना जाता है!
जैसा कि अन्य लोगों ने कहा है, आप निर्भरता का उपयोग कर सकते हैं : यह जानने के लिए लक्ष्य का विश्लेषण करें कि कौन सी निर्भरता का उपयोग किया जाता है और घोषित किया जाता है, उपयोग किया जाता है और अघोषित या अप्रयुक्त और घोषित किया जाता है। आपको निर्भरता भी मिल सकती है : अपने निर्भरता प्रबंधन खंड में बेमेल को देखने के लिए विश्लेषण-डिप-एमजीटी उपयोगी।
आप बस अपने POM से अवांछित प्रत्यक्ष निर्भरता को हटा सकते हैं, लेकिन यदि उन्हें तीसरे पक्ष के जार द्वारा पेश किया जाता है, तो आप थर्ड-पार्टी जार <exclusions>को बाहर करने के लिए एक निर्भरता में टैग का उपयोग कर सकते हैं ( विवरण और कुछ चर्चा के लिए निर्भरता बहिष्करण अनुभाग देखें ) । यहाँ वसंत निर्भरता से कॉमन्स-लॉगिंग को छोड़कर एक उदाहरण दिया गया है:
<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>
क्या आपने मावेन डिपेंडेंसी प्लगिन को देखा है ? यह आपके लिए सामान नहीं हटाएगा, लेकिन आपके पास खुद को विश्लेषण करने की अनुमति देने के लिए उपकरण हैं। मैं विशेष रूप से सोच रहा हूँ
mvn dependency:tree
मुझे इसी तरह की समस्या थी और उसने एक स्क्रिप्ट लिखने का फैसला किया जो मेरे लिए निर्भरता को दूर करता है। इसका उपयोग करके मैं निर्भरता के आधे से अधिक आसानी से दूर हो गया।
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze। यह सिर्फ हर निर्भरता और जांच को हटाने की कोशिश करता है अगर mvn installकाम करता है।