2012-11-22 37 views
8

जरूरत मैं जो Maven रिलीज-प्लगइन 2.3.2 आंतरिक रूप से कहता है के भीतर से जेनकींस M2 रिहाई प्लगइन का उपयोग कर रहा है और निर्माण, जबकि इस त्रुटि फेंकता है: You don't have a SNAPSHOT project in the reactor projects list। समस्या यह है कि, मेरी परियोजनाओं को पर का संस्करण 1.0.0-स्नैपशॉट के रूप में है। मैं क्या खो रहा हूँ ?Maven रिहाई प्लगइन - स्नैपशॉट परियोजना

com.abc.defcompany parent POM है, और मैं बस के लिए utils

<modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>com.abc</groupId> 
     <artifactId>def</artifactId> 
     <version>1.0.0</version> 
    </parent> 

    <groupId>com.abc.def</groupId> 
    <artifactId>utils</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>utils</name> 

और हाँ, मैंने किया है मेरी बुनियादी गूगल + अतः ट्राउल और हर जगह यह बताते हैं कि मेरी poms होने दिया जाना चाहिए mvn release के लिए कर रहा हूँ संस्करण के रूप में स्नैपशॉट, जो पहले से ही है। सिवाय इसके कि मेरी कंपनी के माता-पिता पीओएम स्नैपशॉट नहीं है। क्या यह कारण हो सकता है?

+0

आप पोम दिखा सकते हैं:

फिक्सिंग के लिए शांत माता पिता पोम पर उपयोग करने के लिए है? – khmarbaise

+0

@khmarbaise ने पीओएम –

+0

जोड़ा है क्या यह एक एकल मॉड्यूल है या यह बहु-मॉड्यूल बिल्ड का अभिभावक है, क्योंकि इसका पैकेजिंग पोम है? – khmarbaise

उत्तर

12

के साथ सुधार संस्करण मिलेगा, मुझे एक ही समस्या थी लेकिन ये समाधान काम नहीं कर पाए। This blog post by Tomek Kaczanowski सिर पर कील मारा।

कारण अक्सर यह है कि जेनकींस एसवीएन रणनीति "जितना संभव हो सके svn अद्यतन का उपयोग" पर सेट है, जो बिल्ड के बीच बिल्ड वर्कस्पेस को साफ़ नहीं करता है।

जब आप रिलीज में कटौती करने का प्रयास करते हैं, तो जेनकींस आपके पोम को अपडेट करेगा और कुछ अस्थायी फाइलें बनाएगा। अगर रिलीज विफल हो जाता है, तो इन पोम अपडेट और temp फ़ाइलों को साफ़ नहीं किया जाता है। तो फिर, जब आप पोम को ठीक करते हैं और पुनर्निर्माण करने का प्रयास करते हैं, तो आपको जेनकिंस को भ्रमित करने वाली इन भयानक कार्यक्षेत्र कलाकृतियों के कारण You don't have a SNAPSHOT project in the reactor projects list त्रुटि मिलती है।

समाधान आपकी जेनकींस एसवीएन रणनीति को बदलने का है। निम्न में से कोई काम करना चाहिए:

  • हमेशा ताज़ा प्रति
  • अनुकरण स्वच्छ चेकआउट पहले unversioned/नजरअंदाज कर दिया फ़ाइलों को हटाने, फिर 'SVN अद्यतन'
  • तक संभव हो,
  • उपयोग SVN अद्यतन द्वारा, के साथ जांच अपडेट

से पहले 'svn revert' मैं आपको यह सुनिश्चित करने के लिए अपने जेनकिंस वर्कस्पेस को साफ़ करने की सलाह देता हूं कि आप ताजा शुरू कर रहे हैं।

+2

आप सही हैं। जब मैंने सवाल पोस्ट किया था, तब भी मैं मेवेन-जेनकींस रस्सियों को सीख रहा था, लेकिन उसके बाद कुछ दिनों बाद मुझे यह मिला। मेरे जवाब को सही करना चाहिए था, लेकिन चूंकि आपने पहले पोस्ट किया था, मुझे इसे आपको देना होगा। इसे ठीक करने के लिए धन्यवाद। –

5

मास्टर pom को SNAPSHOT भी होने की आवश्यकता नहीं है (मेरी कंपनी में हमारे पास एक ही सेटअप है और यह ठीक काम करता है)। utils pom के इस भाग को निश्चित रूप से निर्माण परिभाषा maven release plugin अनुभाग अपने POM में जहाँ तक मैं बता सकता हूँ ठीक है, इसलिए हो सकता है आप कुछ और,

<scm> 
    <developerConnection>scm:${release-scm}</developerConnection> 
</scm> 

और तरह वंचित हो रहे हैं? (एक लंबे शॉट मुझे पता है)

+0

तथ्य यह है कि मैं उस मंच तक पहुंचने में सक्षम हूं जहां यह त्रुटि को फेंकता है 'आपके पास रिएक्टर परियोजना सूची में एक स्नैपशॉट प्रोजेक्ट नहीं है', इसका मतलब है कि मैंने इस http को पढ़ने के द्वारा '' टैग को ठीक से कॉन्फ़िगर किया है:// maven.apache.org/scm/plugins/usage.html, इसलिए यह समस्या नहीं है। और अगर मेरे पास माता-पिता पीओएम में घोषित मेवेन रिलीज प्लगइन नहीं था, तो मुझे 'अज्ञात लाइफसाइक्ल चरण एमवीएन रिलीज' या कुछ ऐसा कहने में त्रुटि मिली होगी और इस चरण तक नहीं पहुंचे –

+0

मैंने आपके जैसा परीक्षण प्रोजेक्ट बनाया है है (स्नैपशॉट के बिना मास्टर, पोम पैकेजिंग) और मैंने इसे जेनकींस v1.488 और एम 2 रिलीज प्लगइन v0.9.1 के माध्यम से रखा है। मास्टर रिलीज प्लगइन v2.2.1 और एसएमएम प्लगइन v1.5 का उपयोग कर रहा है। मैं एक बहुत संदिग्ध परिदृश्य से अलग मुद्दे को फिर से बनाने में सक्षम नहीं हूं। अर्थात्, मुझे एक ही त्रुटि मिलती है जब पोम में ऐसा संस्करण होता है जो SNAPSHOT के साथ समाप्त नहीं होता है, उदा। 1.0.0-SNAPSHOT-प्रत्यय। यहां ऐसा हो सकता है क्योंकि डेवलपर्स प्रत्येक मुद्दे (संस्करण में मानव त्रुटि) के लिए शाखा बना रहे हैं। क्या आप बच्चे मॉड्यूल को संस्करण में रख सकते हैं? – tohokami

+0

इसके अलावा, अगर आपको अपने पोम के एक साफ संस्करण को भेजने में कोई फर्क नहीं पड़ता है, तो मुझे यह देखने के लिए जेनकिंस के माध्यम से चलाने में खुशी होगी। या, मैं आपकी सफाई कर सकता हूं और आपको पसंद कर सकता हूं। – tohokami

2

मैं कारण पाया: नवीनतम कंपनी जनक पोम mvn तर्क सूची में

  1. मैं clean था और -U दोनों नहीं उठाया जा रहा है।
  2. काम नहीं किया, फिर मैंने ~/.m2 भंडार को साफ़ किया। जेनकींस

    1. गोटो Job config पेज
    2. जाओ में

    क्या है काम किया, काम Build को नहीं कहा था, क्लिक Advanced

  3. बॉक्स Use private Maven repository
  4. करें Local to the workspace की जाँच करें। Save

मुझे पता है कि यह उन अजीब चीजों में से एक है मैवेन किसी कारण से करने की आदत है। और सामान्य रूप से त्रुटियां पर्याप्त जानकारीपूर्ण/अंतर्ज्ञानी नहीं होती हैं।

3

वास्तव में जेनकीस के कार्यक्षेत्र में कुछ मॉड्यूल के पुराने गैर स्नैपशॉट संस्करण शामिल हैं। वर्कस्पेस को मिटाएं (= इसे साफ़ करने और साफ़ करने के लिए), फिर एक रिलीज करें, उसे प्रत्यय-एसएनएपीएसएचओटी

4

मुझे कभी-कभी शब्द के साथ वर्तनी की समस्याएं मिलीं: "स्नैपशॉट", जो मूल रूप से एक ही त्रुटि का कारण बनती है। जैसे:

1. SNAPSOT 
2. SNASHOT 
3. SHNAPSOT 

;-) इसलिए इसे आगे की जांच करना उचित है।

versions:set 
+2

+1 मैं पूरे दिन SNAPSHOT टाइप करने में असमर्थ रहा हूं। ओह, वहां, मैंने किया। – Josh

+0

संस्करण: सेट वहां समझाया गया है: http://mojo.codehaus.org/versions-maven-plugin/examples/set.html – koppor

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