5

हमारे पास 1 कंपनी पेरेंट पोम है। यह उपयोग की जाने वाली सभी कलाकृतियों की सभी निर्भरताओं के लिए संस्करणों का प्रबंधन करने के लिए निर्भरता प्रबंधन का उपयोग करता है।मेवेन रिलीज प्लगइन निर्भरता प्रबंधन में SNAPSHOT संस्करण के लिए अनुमति क्यों देता है?

खतरनाक क्या है, यह है कि SNAPSHOT संस्करण निर्भरता प्रबंधन में परिभाषित किया जा सकता है। हालांकि जब मेवेन रिलीज किया जाता है, तो पोम को निर्भरता प्रबंधन में स्नैपशॉट संस्करण के साथ रिलीज़ होने की अनुमति है। क्यूं कर?

यदि मैं कंपनी के मूल पोम के एक रिलीज़ संस्करण में एक बाल प्रोजेक्ट को इंगित करता हूं, और यह बच्चा प्रोजेक्ट निर्भरता में परिभाषित निर्भरता का उपयोग करता है, हालांकि यह एक स्नैपशॉट संस्करण है, लेकिन मैं बाल प्रोजेक्ट को रिलीज़ करने में असमर्थ हूं।

मैवेन निर्भरता में परिभाषित एक आर्टिफैक्ट के लिए स्नैपशॉट संस्करण को क्यों अनुमति देता है प्रबंधन जारी किया जाना चाहिए? और अगर SNAPSHOT संस्करण परिभाषित किया गया है तो मैं विफल होने के लिए मैवेन रिलीज प्लगइन को कैसे कॉन्फ़िगर कर सकता हूं?

उत्तर

3

खतरनाक क्या है, यह है कि SNAPSHOT संस्करण निर्भरता प्रबंधन में परिभाषित किया जा सकता है। हालांकि जब मेवेन रिलीज किया जाता है, तो पोम को निर्भरता प्रबंधन में स्नैपशॉट संस्करण के साथ रिलीज़ होने की अनुमति है। क्यूं कर?

मैं रिलीज पर dependencyManagement में SNAPSHOT संस्करणों को अद्यतन करने के लिए maven-release-plugin की अपेक्षा करता हूं। असल में, इसके बारे में कुछ जिरा हैं, उदाहरण के लिए MRELEASE-91 और MRELEASE-202 जो आपको प्रभावित कर सकते हैं।

तो सवाल यह है कि प्लगइन का कौन सा संस्करण आप उपयोग कर रहे हैं?

लेकिन ईमानदार होने के लिए, यह वास्तव में स्पष्ट नहीं है कि MRELEASE-202 द्वारा कौन से संस्करण प्रभावित होते हैं, टिप्पणियां उलझन में हैं (इसलिए मुझे आश्चर्य है कि समस्या ठीक है या नहीं)। वैसे भी, यदि आप जिस संस्करण का उपयोग कर रहे हैं वह प्रभावित है, तो एक और हालिया संस्करण में अपग्रेड करें। और अगर बग/रिग्रेशन (मुझे लगता है कि यह एक बग है) अभी भी वहां है, तो एक नया मुद्दा उठाएं।

+0

THX:

आप मूल रूप से अपने माता पिता पोम के लिए निम्न जोड़ने की जरूरत है। हम 2.0-बीटा -9 का उपयोग कर रहे हैं। हम इस जिरा टिकट – joshjdevl

+0

इस मुद्दे के बारे में नया जिरा देखेंगे [MRELEASE-454] (https://issues.apache.org/jira/browse/MRELEASE-454)। ऐसा लगता है कि यह 2.2.2 में तय किया गया था लेकिन कम से कम 2.4 में पुन: उत्पादित किया गया था। – Tunaki

0

मेरे पास 'क्यों' (व्यक्तिगत रूप से मुझे लगता है कि यह एक बग है) का जवाब नहीं है, लेकिन मेरे पास ऐसा होने से रोकने का एक तरीका है: मेवेन Enforcer प्लगइन का उपयोग करें।

smartics (लोअरकेस एस) नामक एक कंपनी ने इस सटीक समस्या को रोकने के लिए एक नियम (NoSnapshotDependenciesInDependencyManagementRule) बनाया है।

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-enforcer-plugin</artifactId> 
    <version>1.4.1</version> 
    <executions> 
    <execution> 
     <id>enforce-project-rules</id> 
     <phase>test</phase> 
     <goals> 
     <goal>enforce</goal> 
     </goals> 
     <configuration> 
     <rules> 
      <NoSnapshotDependenciesInDependencyManagementRule 
      implementation="de.smartics.maven.enforcer.rule.NoSnapshotsInDependencyManagementRule"> 
      <onlyWhenRelease>true</onlyWhenRelease> 
      <checkOnlyResolvedDependencies>false</checkOnlyResolvedDependencies> 
      </NoSnapshotDependenciesInDependencyManagementRule> 
     </rules> 
     </configuration> 
    </execution> 
    </executions> 
    <dependencies> 
    <dependency> 
     <groupId>de.smartics.rules</groupId> 
     <artifactId>smartics-enforcer-rules</artifactId> 
     <version>1.0.2</version> 
    </dependency> 
    </dependencies> 
</plugin> 
संबंधित मुद्दे