2015-06-11 6 views
14

में प्रबंधित संस्करण चेतावनी ओवरराइड करना दबाएं मैं spring-boot का उपयोग कर रहा हूं, और here वर्णित एक के समान त्रुटि का अनुभव किया। मैंने अपने pom.xml में निम्नलिखित जोड़ा।मेवेन - ग्रहण

<dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId><!--$NO-MVN-MAN-VER$--> 
     <version>1.1.0.Final</version> 
    </dependency> 

मैं मान्यता-api 1.0.0 निर्भरता, मेरे माता-पिता pom.xml में परिभाषित स्प्रिंग बूट के माध्यम से अधिभावी रहा हूँ, और इस परेशान चेतावनी संदेश देता है:

Overriding managed version 1.0.0.GA for validation-api

कैसे कर सकते हैं मैं ग्रहण में इस चेतावनी संदेश को स्थायी रूप से दबाएं? यह मेरे pom.xml दोनों में दिखाता है और मेरी समस्याएं देखें।

+0

दिए गए पैरेंट पोम में संस्करण अपडेट करें। – khmarbaise

+0

टिप्पणी जोड़ना मेरे लिए काम करता है। –

+0

प्रतिक्रियाओं के लिए धन्यवाद। आरई पैरेंट पोम अपडेट करें ... मेरे पास पैरेंट पोम नहीं है, इसे स्प्रिंग बूट के माध्यम से विरासत में मिला है। आरई जोड़ना जो या तो काम नहीं करता था, लेकिन मुझे नहीं पता कि मैंने इसे सही तरीके से इस्तेमाल किया है या नहीं। अगर मैं चेतावनी को स्पष्ट करता हूं तो मैं इसके बारे में अधिक जानना चाहूंगा। –

उत्तर

19

कि चेतावनी दिखाई देता है, तो आप चेतावनी पर त्वरित-फिक्स मेनू खोल सकते हैं (Ctrl + 1) और चयन

Ignore this warning

इस तरह, संस्करण लाइन पर टिप्पणी जोड़ देगा:

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.1.0.Final</version><!--$NO-MVN-MAN-VER$--> 
</dependency> 

आपकी समस्या यह है कि आपने गलत लाइन पर उस टिप्पणी को मैन्युअल रूप से जोड़ा है।

+0

यह ग्रहण में दिखाए गए चेतावनी को हटाने के लिए काम करता है लेकिन मैं अभी भी परियोजना बनाने में असमर्थ हूं। त्रुटि प्राप्त हो रही है: 'नियम 0: org.commonjava.maven.enforcer.rule.EnforceManagedDepsRule संदेश के साथ विफल रहा: निम्न 2 निर्भरताएं प्रबंधित संस्करण का उपयोग नहीं कर रही हैं –

+2

यह समस्या हल करने का एक बुरा तरीका है, क्योंकि यह टूट सकता है अन्य पुस्तकालय की निर्भरता। –

2

मुख्य पोम में आपको जिस संस्करण की आवश्यकता है उसे दर्ज करें।

यह चेतावनी का अर्थ है कि आप अपने मुख्य (शीर्ष स्तर) पोम में परिभाषित आर्टिफैक्ट संस्करण को ओवरराइड करने का प्रयास कर रहे हैं। केवल मुख्य पोम में आवश्यक संस्करण दर्ज करें और आपको इस निर्भरता के लिए अन्य पोम्स में <version /> का उपयोग करने की भी आवश्यकता नहीं है।

5

के बाद से परियोजना spring-boot उपयोग कर रहा है, एक और अधिक उचित जवाब यहां पाया जा सकता है: https://stackoverflow.com/a/35385268/1568658

(और मैं एक जवाब जोड़ना होगा के बाद से मैं एक ही मुद्दा मिल गया है, और इसके बाद के संस्करण जवाब भी बहुत पूरा नहीं हुआ है। । यहाँ)

मुद्दे के कारण:

spring-boot कई निर्भरता & अपने संस्करण परिभाषित किया गया है, जब आप पारे के रूप में इस्तेमाल वसंत-बूट जोड़ने एनटी, इन निर्भरताओं को विरासत में मिला, और एक अलग संस्करण के साथ निर्भरता में से एक को ओवरराइड करना चेतावनी मिलेगा, क्योंकि यह अन्य पुस्तकालयों की निर्भरताओं को तोड़ सकता है।

समाधान:

, <properties></properties> के बीच कि निर्भरता के लिए एक संपत्ति को परिभाषित संस्करण निर्दिष्ट करने के।

, उदा,

 <properties> 
      <reactor.version>2.5.0.BUILD-SNAPSHOT</reactor.version> 
     </properties> 

कैसे संपत्ति नाम को खोजने के लिए:

  • ग्रहण में अपने pom.xml खोलें।
  • माता पिता की पोम खोलने, और अंत में के रूप में spring-boot-dependencies
  • artifactId साथ पोम को पाने के लिए दो बार विपरीत क्लिक करने की जरूरत के लिए <parent> टैग पर ctrl + click एक बार जब आप खुले कि पोम, अपनी निर्भरता के लिए खोज, ई की है।जी servlet-api, और आप डिफ़ॉल्ट संस्करण देख सकते हैं।

वहाँ वसंत से एक दस्तावेज़ बेहतर बताते है: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

-1

उपयोगी! मैं समस्या का समाधान करता हूं। मॉड्यूल पोम फ़ाइल 9.2.12.एम 0 घोषित करता है जबकि वसंत-बूट V9.3 का संदर्भ देता है। मैं पैरेंट पोम फ़ाइल में V9.2 को ओवरराइट करता हूं। "एरिक वांग" द्वारा अनुसरण करें

+0

वसंत-बूट डिफ़ॉल्ट संस्करण, है जो तत्व के रूप में पोम फ़ाइल में घोषित किया जा सकता है का उपयोग करें \t \t <निर्भरता> \t \t \t \t \t \t \t org.springframework.boot \t \t \t \t वसंत-बूट-निर्भरता \t \t \t \t 1.5.1.RELEASE \t \t \t \t पोम \t \t \t \t आयात \t \t \t \t \t \t, आप अपने खुद के संस्करण की घोषणा करनी चाहिए अधिलेखित करने के लिए डिफ़ॉल्ट संस्करण। –

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