यहाँ मेरी सामान्य समस्या है:
मेरा प्रोजेक्ट P A पर निर्भर करता है जो B पर निर्भर करता है जो C पर निर्भर करता है जो D के संस्करण 1.0.1 पर निर्भर करता है।
D के संस्करण 1.0.1 के साथ एक समस्या है और मैं दूसरे मॉड्यूल के उपयोग को बाध्य करना चाहता हूं। मुझे नहीं पता कि मैं अपने प्रोजेक्ट के POMs में इसे कैसे घोषित करूं क्योंकि मैंने सीधे D पर निर्भरता नहीं जोड़ी है। यह C है जो D पर निर्भरता घोषित करता है।
महत्वपूर्ण: इस मामले में, न केवल संस्करण बदल जाता है, बल्कि समूह और कलाकृति भी। तो यह सिर्फ निर्भरता के संस्करण को ओवरराइड करने की बात नहीं है, बल्कि एक मॉड्यूल को छोड़कर और एक अन्य को शामिल करने के लिए है।
ठोस मामले में, D StAX है, जिसका 1.0.1 बग है । बग में नोटों के अनुसार, "समस्याओं को हल किया गया था- stax-api-1.0.1 (maven GroupId = stax) को stax-api-1.0-2 (maven GroupId = javax.xml.stream) द्वारा" इसलिए " मैं बस कोशिश कर रहा हूँ।
इस प्रकार, D = stax: stax-api: jar: 1.0.1 और C = org.apache.xmlbeans: xmlbeans: jar: 2.3.0
मैं maven का उपयोग कर रहा हूँ 2.0.9 अगर यह मायने रखता है।
Mvan निर्भरता का उत्पादन: पेड़ "
mvn dependency:tree
[..snip..]
[INFO] +- org.apache.poi:poi-ooxml:jar:3.6:compile
[INFO] | +- org.apache.poi:poi-ooxml-schemas:jar:3.6:compile
[INFO] | | +- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
[INFO] | | | \- stax:stax-api:jar:1.0.1:compile
मेरी परियोजना के पोम में "ए" पर निम्न निर्भरता है:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.6</version>
</dependency>
अग्रिम में धन्यवाद।