2010-12-27 21 views
12
<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
</dependency> 

मैं अपने प्रोजेक्ट के pom.xml पर उस निर्भरता आयात का उपयोग करता हूं। मेरा सवाल है कि मैंने 2.5 को संस्करण के रूप में घोषित किया है। हालांकि कम संस्करण लिखना महत्वपूर्ण है? उदाहरण के लिए मेरा मतलब है कि अगर मेरी परियोजना 3.0 संस्करण का उपयोग करती है और मैं लिखता हूं कि 2.5 प्रदान किया जाएगा? (मेरा मतलब है कि चलो स्वीकार करते हैं कि 2.5 ठीक है और मेरी परियोजना अच्छी तरह से काम करती है, अगर मैं कुछ और नहीं बदलता और बस 2.5 से 2.0 में बदल जाता है तो क्या यह त्रुटि हो जाता है?)मैवेन प्रदान किया गया स्कोप

उत्तर

6

यह निर्भर करता है।

आम तौर पर, यदि आप एक सटीक संस्करण की उम्मीद कर रहे हैं (भले ही प्रदान किया गया हो) तो यही वह है जो आपको प्रदान करना चाहिए।

हालांकि, ऐसे कई उदाहरण हैं जब आपको संस्करणों को थोड़ा सा करने की आवश्यकता हो सकती है। ऐसा कहा जा रहा है - मैं 2 अंक का विरोध करूंगा:

1) शायद यह संभव है कि आपकी परियोजना कम संस्करण की अपेक्षा करे और उच्च संस्करण के साथ प्रदान की जाए; जब तक उच्च संस्करण एक प्रमुख नहीं है। मैं एक अच्छा ओपन सोर्स वर्जनिंग मॉडल, जैसे कि Apache project पर एक नज़र डालने का सुझाव दूंगा।

2) यह शायद ठीक है कि आपकी परियोजना उच्च संस्करण की अपेक्षा करें और कम प्राप्त करें। मुख्य कारण यह है कि आप ऐसी चीजों की अपेक्षा नहीं कर सकते जो वहां नहीं हो सकते हैं।

मुझे उम्मीद है कि इससे मदद मिलती है।

+0

धन्यवाद। मैं समझता हूं कि यदि मैं कुछ विधियों का उपयोग नहीं करता हूं, तो इसके निचले संस्करणों के साथ संगतता नहीं है, यह ठीक है। – kamaci

20

सही समाधान कंटेनर में नाबालिग में उपयोग किए जाने वाले सटीक सर्वलेट एपीआई संस्करण को घोषित करना है।

कीवर्ड प्रदान किया गया: आपके द्वारा निर्दिष्ट संस्करण जो संकलन समय और परीक्षण के लिए उपयोग किया जाता है। रनटाइम पर यह आपके रनटाइम कंटेनर द्वारा प्रदान किया जाता है, उदाहरण के लिए घाट।

यदि वास्तविक रनटाइम लाइब्रेरी आपके पीओएम में घोषणा से अलग है, तो आप परेशानी को आमंत्रित कर रहे हैं। चाहे आप मुद्दों का अनुभव करेंगे या नहीं करेंगे, संस्करणों के बीच संगतता का सवाल है।

सर्वलेट एपीआई पीछे की ओर संगत है, देखें: Are the Java Servlet APIs backwards compatible?

+0

धन्यवाद, आपने इसे अच्छी तरह वर्णित किया है, मैं मतदान कर रहा हूं। – kamaci

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