मैं निर्भरता अभिसरण मुद्दों की जांच के लिए मेवेन-एंफोर्स-प्लगइन का उपयोग करता हूं। एक सामान्य आउटपुट होगा:मैवेन निर्भरता अभिसरण समस्याओं को हल करना
[WARNING] Rule 1: org.apache.maven.plugins.enforcer.DependencyConvergence failed
with message:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for junit:junit:3.8.1 paths to dependency are:
+-foo:bar:1.0-SNAPSHOT
+-ca.juliusdavies:not-yet-commons-ssl:0.3.9
+-commons-httpclient:commons-httpclient:3.0
+-junit:junit:3.8.1
and
+-foo:bar:1.0-SNAPSHOT
+-junit:junit:4.11
]
इस संदेश को देखते हुए, मैं सामान्य रूप से संक्रमणीय निर्भरता को छोड़कर इसे "हल" करता हूं, उदा।
<dependency>
<groupId>ca.juliusdavies</groupId>
<artifactId>not-yet-commons-ssl</artifactId>
<version>0.3.9</version>
<exclusions>
<!-- This artifact links to another artifact which stupidly includes
junit in compile scope -->
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
मैं समझना चाहता हूं कि यह वास्तव में एक फिक्स है और इस फैशन में पुस्तकालयों को छोड़कर जोखिम शामिल है। जैसा कि मैंने इसे देखा:
"फिक्स" सामान्य रूप से सुरक्षित है, बशर्ते मैं नए संस्करण का उपयोग करना चुन रहा हूं। यह लाइब्रेरी लेखकों को पीछे की संगतता बनाए रखने पर निर्भर करता है।
आम तौर पर मेवेन बिल्ड (निकटतम परिभाषा जीतने के बाद) पर कोई प्रभाव नहीं पड़ता है, हालांकि निर्भरता को छोड़कर मैं मैवेन को बता रहा हूं कि मुझे इस समस्या के बारे में पता है और इस प्रकार मैवेन-एनफोर्स-प्लगइन को प्रसन्न करता है।
क्या मेरे विचार सही हैं और क्या इस मुद्दे को संभालने का कोई वैकल्पिक तरीका है? मुझे उन उत्तरों में दिलचस्पी है जो सामान्य मामले पर ध्यान केंद्रित करते हैं - मुझे लगता है कि ऊपर junit
उदाहरण थोड़ा अजीब है।
एक बहुत अच्छी प्रतिक्रिया, धन्यवाद। मैंने बहिष्कार को बनाए रखने के खतरों के बारे में सोचा नहीं था। –
मैंने आपके उत्तर में विस्तार के स्तर के कारण आपको बक्षीस से सम्मानित किया।यह एक अच्छा (कुछ हद तक) वास्तविक दुनिया का उदाहरण देखना अच्छा था कि यह गलत कैसे हो सकता है। –
@DuncanJones धन्यवाद। मेरा जवाब एक समाधान की तुलना में एक चेतावनी है। फिर भी, मुझे आशा है कि इससे मदद मिलेगी। –