2013-03-14 9 views
5

मेरा लक्ष्य एक ऐसी परियोजना को रिलीज़ करना है जिसमें एक निर्भरता हो। मेरे पास एक नेक्सस भंडार है जहां मैं स्नैपशॉट और रिलीज संस्करण दोनों तैनात करता हूं।मेवेन संस्करण रिलीज उम्मीदवार और स्नैपशॉट

एक निर्भरता मैं

group:artifact:1.1.0-SNAPSHOT 

है और निम्नलिखित रिलीज़ उम्मीदवार

group:artifact:1.1.0-RC1 

जब संस्करणों निर्भरता को हल करने प्लगइन करने के लिए पूछ रहा है, यह है कि कोई भी दावा है मेरी गठजोड़ रेपो में जारी किया गया है नई निर्भरता उपलब्ध है। तो वह पर विचार

1.1.0-SNAPSHOT > 1.1.0-RC1 

हालांकि, अपने प्रोजेक्ट में हैं, तो मैं संस्करण है 1.0.0-स्नैपशॉट, संस्करण 1.1.0-RC1 नवीनतम संस्करण के रूप में हल हो गई है।

मुझे क्या याद आ रही है? (मैं प्लगइन स्रोतों में देखा है और हम निम्नलिखित स्निपेट है:।?

String otherQualifier = otherVersion.getQualifier(); 

if (otherQualifier != null) 
{ 
    if ((qualifier.length() > otherQualifier.length()) 
     && qualifier.startsWith(otherQualifier)) 
    { 
    // here, the longer one that otherwise match is considered older 
    result = -1; 
    } 
    else if ((qualifier.length() < otherQualifier.length()) 
     && otherQualifier.startsWith(qualifier)) 
    { 
    // here, the longer one that otherwise match is considered older 
    result = 1; 
    } 
    else 
    { 
    result = qualifier.compareTo(otherQualifier); 
    } 
} 

जो मेरे लिए गाड़ी लगता है किसी भी विचार

उत्तर

9

Maven संस्करण नंबर इस प्रकार शामिल हैं:

<major version>.<minor version>.<incremental version>-<qualifier> 

हैं सभी संस्करण संख्या बराबर हैं, क्वालीफायर की तुलनात्मक रूप से की जाती है। "आरसी 1" और "स्नैपशॉट" और "ए" और "बी" के लिए अलग-अलग क्रमबद्ध नहीं किया गया। परिणामस्वरूप, "स्नैपशॉट" को नया माना जाता है क्योंकि यह वर्णानुक्रम से अधिक है। this page एक संदर्भ के रूप में।

ध्यान दें कि a.b.c-RC1-SNAPSHOTa.b.c-RC1 से पुराना माना जाएगा।

मुझे यकीन नहीं है कि समाधान के रूप में क्या सुझाव देना है - यह वही है जो मैवेन वर्जनिंग काम करता है।

+0

दिए गए लिंक बहुत मदद की , धन्यवाद – mirlitone

+0

यह केवल आधा सही है, क्योंकि SNAPSHOT एक विशेष क्वालीफायर है जिसे आप जिस प्रक्रिया का वर्णन कर रहे हैं उसके बाहर मेवेन द्वारा संभाला जाता है। देखें: https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN401 –

1

चश्मा केवल मुख्य रूप से मधुमक्खी स्नैपशॉट या जो भी हो, लेक्सिगोग्राफ़िकल ऑर्डर की तुलना में योग्यता के साथ major.minor.increment-qualifier के साथ काम करते हैं।

मैंने मैवेन-संस्करण-प्लगइन को फेंकने और अपनी खुद की संस्करण योजना को कार्यान्वित करने का अंत किया, जो मानते हैं कि एक रिलीज उम्मीदवार का एक स्नैपशॉट संस्करण हमेशा पुराना होता है जो रिलीज उम्मीदवार स्वयं होता है।

यह भी लागू करने के लिए मुश्किल नहीं था, मैं

org/codehaus/mojo/versions/ordering/MavenVersionComparator 

से बढ़ाया और

org/codehaus/mojo/versions/ordering/VersionComparators.java 

में ही वर्ग द्वारा घोषित और लागू अपने काम से काम तर्क

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