2012-04-10 12 views
7

उदाहरण के लिए मेरे पास है निर्भरता:Maven निर्भरता: को बाहर एक वर्ग

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.5.6</version> 
</dependency> 

मैं उदाहरण org/slf4j/Marker.class के लिए एक श्रेणी को हटा सकता है?

+0

किस चरण - संकलन या पैकेज के दौरान 'बहिष्कृत करें '? – Raghuram

+0

पैकेज में .ear, maven-ear-plugin – Ilya

+1

हम्म का उपयोग करके पैकेज! आपको .ear में क्या चाहिए, निर्दिष्ट वर्ग के बिना 'slf4j-api.jar' है। इसे प्राप्त करने के लिए कोई सीधा तरीका नहीं है। – Raghuram

उत्तर

3

संभव नहीं में एक भी वर्ग को छोड़कर के साथ यह कोशिश करो। <dependency> टैग के भीतर आप <exclusions/> परिभाषित कर सकते हैं। हालांकि, ये पूरी निर्भरताओं के लिए हैं।

छाया प्लगइन को देखभाल के साथ संभाला जाना चाहिए। आम तौर पर, यदि आप किसी अन्य प्रोजेक्ट में निर्भरता के रूप में उत्पादित आर्टिफैक्ट का उपयोग कर रहे हैं तो यह एक ऐसी जगह पर आपकी सभी निर्भरताओं वाली जार बनाने का अच्छा अभ्यास नहीं है क्योंकि इससे समस्याएं पैदा होती हैं। उदाहरण के लिए, अपने जार में slf4j छायांकन और फिर किसी अन्य प्रोजेक्ट में अपने आर्टिफैक्ट के आधार पर जहां आपके पास एक और slf4j आपको दुःख पहुंचाएगा।

2

आप उन वर्गों को बदलने और उन्हें एक अलग जार/मॉड्यूल जो से पहले एक निर्भरता के रूप में शामिल किया जाना चाहिए जार कि निर्भरता जहां अपनी कक्षा बसता था बाहर रखा जाना (Marker.class) की आपूर्ति में निर्धारित कर सकते हैं।

मैवेन संस्करण 2.0.9 से क्लासपाथ ऑर्डरिंग को याद करता है।

संबंधित मुद्दे