2013-07-04 5 views
5

खैर, समस्या यह है कि मैं मेवेन को निर्माण पर निर्भरता संस्करण की जांच करना चाहता हूं और मुझे चेतावनी देता हूं कि क्या कोई नया निर्भरता संस्करण है (वास्तव में - अगर मैं कुछ मॉड्यूल के पुराने संस्करण का उपयोग करता हूं तो मुझे सूचित करें)। वास्तव मेंमैवेन बिल्ड कैसे विफल करें यदि निर्भरता का नया संस्करण भंडार में मौजूद है?

<dependency> 
    <groupId>com.example.mycompany</groupId> 
    <artifactId>commons</artifactId> 
    <version>1.0.3</version> 
</dependency> 

और com.example.mycompany:commons मॉड्यूल पहले से ही 1.0.4 संस्करण हो सकता है: मेरी Maven मॉड्यूल एक निम्नलिखित निर्भरता है। रेपो में निर्भरता के संस्करण की जांच करने का कोई तरीका है और यदि नया संस्करण पहले से उपलब्ध है तो निर्माण में असफल रहा है।

मुझे उम्मीद है कि versions-maven-plugin इसे बना सकता है। लेकिन मुझे उचित विन्यास नहीं मिल रहा है।

+0

आप जांच की है [संस्करणों-Maven-प्लगइन: प्रदर्शन-निर्भरता-अपडेट] (http://mojo.codehaus.org/ संस्करण-मेवेन-प्लगइन/उदाहरण/प्रदर्शन-निर्भरता-अपडेट.html) लक्ष्य? इसका उपयोग एक रिपोर्ट बनाने के लिए किया जा सकता है और आपको जो पसंद है उसे प्राप्त करने के लिए पार्स किया जा सकता है? – khmarbaise

+0

वास्तव में मैं नीचे दिए गए @spacetrucker के रूप में कस्टम Enforcer नियम के साथ एक का उपयोग करें। – revenforv

उत्तर

3

इस समस्या को maven-enforcer-plugin के साथ हल किया जा सकता है। आपको अपना खुद का custom rule बनाना है, क्योंकि standard rules में से कोई भी आपकी आवश्यकताओं से मेल नहीं खाता है।

आप जिस नियम को लागू करने जा रहे हैं उसकी धारणा लागू निर्भरता तक लागू होनी चाहिए। चेक को लागू करने के लिए आप संस्करणों-मैवेन-प्लगइन का उल्लेख करते हुए कुछ प्रेरणा प्राप्त कर सकते हैं।

+0

यह सही समाधान की तरह दिखता है। धन्यवाद! – revenforv

+1

@revenforv कोई भी मौका आप इस कस्टम नियम को प्रकाशित करना चाहते हैं? मुझे इसे खुद इस्तेमाल करना अच्छा लगेगा। – xnickmx

+0

@xnickmx दुर्भाग्य से, नहीं। हमारे पास उस कस्टम नियम के लिए कोई समय नहीं था और इसलिए "मैन्युअल जांच और परिवर्तन संस्करण" दृष्टिकोण का उपयोग करने का निर्णय लिया गया। – revenforv

0

आप स्रोत नियंत्रण और एक सतत एकीकरण सर्वर (जो एक सुरक्षित धारणा है) का उपयोग कर रहे हैं, तो आप कर सकते हैं:

  1. versions plugin उपयोग करें और यह पोम
  2. संशोधित तो scm:check-local-modification या रिहाई का उपयोग स्थानीय संशोधनों के लिए रिलीज प्लगइन आईआईआरसी जांच के रूप में प्लगइन।

यहाँ एक उदाहरण नवीनतम माता पिता पोम के लिए जाँच कर रहा है:

mvn versions:update-parent scm:check-local-modification -DallowSnapshots=false -DgenerateBackupPoms=false 
संबंधित मुद्दे