mvan रिलीज़: pom.xml में परिवर्तन नहीं करने के लिए तैयार करें


81

मैं मावेन के साथ जेनकिंस प्लगइन ( स्टेश्नोटिफ़ायर ) जारी करने और रिलीज़ प्लगइन के साथ एक समस्या का सामना करने की कोशिश कर रहा हूं ।

mvn clean release:prepare

त्रुटियों के बिना पूरा करने के लिए चलाता है, लेकिन मेरे स्थानीय गिट रिपॉजिटरी में परिवर्तित pom.xml करने में विफल रहता है। भले ही यह उस शाखा के टैग को टैग करता है जिस पर मैं 1.0.2 संस्करण जारी करने की कोशिश कर रहा हूं। यह वही है जो मेरी स्थानीय शाखा रिलीज की तैयारी से पहले देखती है

* df60768 (HEAD, origin/develop, develop) upgraded parent pom to version 1.498
* 792766a added distribution management section to pom.xml and amended readme.md 

और इसके बाद ऐसा लगता है

* df60768 (HEAD, tag: stashNotifier-1.0.2, origin/develop, develop) upgraded parent pom to version 1.498
* 792766a added distribution management section to pom.xml and amended readme.md 

दुर्भाग्य से, pom.xml में पहले से ही अगला विकास संस्करण शामिल है, जो बाद में रिलीज़ होने का कारण बनता है: उस स्नैपशॉट संस्करण को रिलीज़ करने के लिए प्रदर्शन करें।

मावेन के कमांड आउटपुट से, यह लगभग ऐसा लगता है जैसे यह git कमिट कमांड को छोड़ रहा है:

[INFO] Checking in modified POMs...
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git add -- pom.xml
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git status
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Tagging release with the label stashNotifier-1.0.2...
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git tag -F /var/folders/dr/xxbtyycs1z9dl2_snlj87zrh0000gn/T/maven-scm-678409272.commit stashNotifier-1.0.2
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git push git@github.com:jenkinsci/stashnotifier-plugin.git stashNotifier-1.0.2
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git ls-files
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Transforming 'Stash Notifier'...
[INFO] Not removing release POMs
[INFO] Checking in modified POMs...
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git add -- pom.xml
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git status
[INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier
[INFO] Release preparation complete.

मैं मावेन 3.0.5 चला रहा हूं (बिना --dry-run या -DpushChanges = false)। यहां मेरे प्रभावी पोम के प्रासंगिक (मुझे लगता है) भाग हैं:

[...]

<scm>
   <connection>scm:git:git://github.com/jenkinsci/stashnotifier-plugin.git</connection>
   <developerConnection>scm:git:git@github.com:jenkinsci/stashnotifier-plugin.git</developerConnection>
   <url>https://github.com/jenkinsci/stashnotifier-plugin</url>
</scm>

[...]

<distributionManagement>
   <repository>
      <id>maven.jenkins-ci.org</id>
      <url>http://maven.jenkins-ci.org:8081/content/repositories/releases/</url>
   </repository>
   <snapshotRepository>
      <id>maven.jenkins-ci.org</id>
      <url>http://maven.jenkins-ci.org:8081/content/repositories/snapshots</url>
   </snapshotRepository>
   <site>
     <id>github-pages</id>
     <url>gitsite:git@github.com/jenkinsci/maven-site.git:plugin-parent/stashNotifier</url>
   </site>
</distributionManagement>

[...]

<properties>
   [...]
   <maven-release-plugin.version>2.2.2</maven-release-plugin.version>
   [...]
</properties>

[...]

<build>
   [...]
   <pluginManagement>
      <plugins>
         [...]
         <plugin>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.2.2</version>
         </plugin>
         [...]
   </pluginManagement>

   [...]

   <plugins>
      [...]
      <plugin>
         <artifactId>maven-release-plugin</artifactId>
         <version>2.2.2</version>
         <configuration>
            <goals>deploy</goals>
         </configuration>
      </plugin>
      [...]
   </plugins>
</build>

मैं क्या गलत कर रहा हूं? अग्रिम में अपनी अंतर्दृष्टि के लिए धन्यवाद!


दुर्भाग्य से मुझे कोई त्रुटि संदेश दिखाई नहीं दे रहा है जो आपके डिक्रीप्शन से संबंधित है। क्या आपको मिलने वाले त्रुटि संदेश दिखा सकते हैं?
खमरबाइसे

2
कि बात है; कोई त्रुटि संदेश नहीं हैं। क्या आप आउटपुट के किसी विशेष खंड में रुचि रखते हैं? (मैं बहु-पृष्ठ
मावेन

मुझे बस वही समस्या थी और इसे मावेन-रिलीज़-प्लगइन के संस्करण 2.4 में अपडेट करके हल किया।
brk3

मुझे भी यही समस्या थी, केवल मैंने इसे 2.4 से 2.3.2 के संस्करण में अपग्रेड करके ठीक किया। जाओ पता लगाओ।
ग्रेग केस

2
मुझे भी समस्या थी, लेकिन 2.4.1 से 2.5.1 में अपग्रेड करने ने मेरे लिए इसे हल कर दिया।
जॉन फियर

जवाबों:


95

मैंने git scm प्रदाता निर्भरता को अपडेट करके अपनी ओर से समस्या को हल किया (maven 3.0.5) जारी किया, न कि रिलीज़ प्लगइन संस्करण:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-release-plugin</artifactId>
      <version>2.4.2</version>
      <dependencies>
        <dependency>
          <groupId>org.apache.maven.scm</groupId>
          <artifactId>maven-scm-provider-gitexe</artifactId>
          <version>1.8.1</version>
        </dependency>
       </dependencies>
      </plugin>
    </plugins>
</build>

Git scm 1.8.1 संस्करण सही ढंग से git कमिट (तैयारी और रोलबैक लक्ष्य के साथ परीक्षण) करता है।

संपादित करें: आपके पर्यावरण के आधार पर मावेन-रिलीज़-प्लगइन और मावेन-स्कैम-प्रोवाइडर-जीटेक्स के विभिन्न संस्करणों की आवश्यकता हो सकती है। अधिक चर्चा के लिए टिप्पणियाँ देखें।


1
इसने मावेन-रिलीज़-प्लगइन 2.4.2 के साथ मेरी समस्या को हल किया। बहुत अच्छा।
केविनरपे

3
@ भौंरा, आपको इस उत्तर को स्वीकार करने पर विचार करना चाहिए!
ericbn

2
यह <विरूपण साक्ष्य के साथ तय नहीं है> मावेन-रिलीज-प्लगइन </ विरूपण साक्ष्य> <संस्करण> 2.5.2 </ संस्करण> और अगर आप मावेन-रिलीज-प्लगइन निर्भरता को नवीनतम जारी किए गए संस्करण (1.9.4) में परिभाषित करते हैं -प्रोवाइडर-जीटेक्स। मैंने रिलीज-प्लगइन डिपो .. को 1.8.1 में बदल दिया और सब कुछ अच्छा हुआ।
टोबियास होचगर्टल

3
मैं दूसरा @ TobiasHochgürtel हूँ। 2.5.2 और 1.9.4 के कॉम्बो में अभी भी एक बग है। 2.5.2 और 1.8.1 ठीक लगता है।
केनी

4
मुझे अभी भी समस्या थी कि POMs में परिवर्तन मावेन 3.3.1, मावेन-रिलीज़-प्लगइन 2.4.1 और मावेन-स्कैम-प्रोवाइडर- gitexe 1.9 के साथ शुरू नहीं किए गए थे। मावेन-रिलीज़-प्लगइन 2.5.3 और मावेन-स्कैम-प्रोवाइडर- gitexe 1.9.4 में अपडेट करने से समस्या हल हो गई।
स्वेन एकरमैन

17

मैं उसी समस्या में भाग गया, #richnou द्वारा समाधान मेरे लिए काम करता है (SCM निर्भरता को अपग्रेड करते हुए)। इस समस्या पर बनाया गया मुद्दा है, नीचे लिंक देखें। समस्या Git के नए संस्करण से संबंधित है जहाँ "git स्टेटस" स्थानीय संदेश देता है जो प्लगइन पार्स नहीं कर सकता है। इसका मूल कारण है। इस मुद्दे को git scm (1.8.1 संस्करण) --porcelainमें git के विकल्प का उपयोग करके तय किया गया था (जिसे आसानी से पार्स करने योग्य आउटपुट लौटाया जाना चाहिए), लेकिन इस फिक्स के बाद, एक और समस्या खड़ी हो गई है - यदि रिपॉजिटरी रूट (scm टैग) कार्य निर्देशिका नहीं है, release:prepareअभी भी विफल रहता है। यह मुद्दा Git SCM के स्नैपशॉट संस्करण में तय किया गया है (अभी तक जारी नहीं हुआ है)। इसे scmचाइल्ड पोम में टैग को कॉपी करके वर्कअराउंड किया जा सकता है ।

MRELEASE-812

SCM-709

maven-release-plugin-and-git-fix


मेरा भी यही मुद्दा था। मैंने ३.२.१ और मित १.९ १। सिर्फ 2.5 रिलीज रिलीज प्लगइन मेरे लिए काम नहीं किया क्योंकि निर्देशिका मैं pom था जड़ जड़ नहीं था। जैसा कि Richnou ने सुझाव दिया कि मैंने maven-scm-provider-gitexe को नवीनतम अपडेट किया जो 1.9.2 था और इसने समस्या को हल किया।
चतुरिका सांडरेनू

9

सबसे पहले, richnou और vasekt के जवाबों ने मेरी समस्या को हल कर दिया मुझे लगा कि मैं इस उत्तर को सिर्फ नए संस्करणों की वजह से बताऊंगा क्योंकि मैंने उल्लेख किया है और मुझे लगा कि उनके लिए एक अतिरिक्त उदाहरण देना अच्छा होगा।

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

<plugin>
   <artifactId>maven-release-plugin</artifactId>
   <version>2.5.3</version>
   <dependencies>
      <dependency>
         <groupId>org.apache.maven.scm</groupId>
         <artifactId>maven-scm-provider-gitexe</artifactId>
         <version>1.9.5</version>
      </dependency>
   </dependencies>
</plugin>

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


2
मेरे मामले में मुझे केवल मावेन-रिलीज़-प्लगइन को 2.5.3 में अपग्रेड करना था। यह gitexe निर्भरता को निर्दिष्ट करने के लिए आवश्यक नहीं था।
कॉलिनी

1
मावेन 3.5.2, मावेन-रिलीज़-प्लगइन 2.5.3 + प्रदाता 1.9.5 पोम के बाद मावन रिलीज़ नहीं करता है: मेरे लिए तैयार करें। प्रदाता 1.8.1 हालांकि करता है।
अवीक

मेरी टिप्पणी के लिए ऊपर अद्यतन करें। 1.8.1 एकल पोम परियोजना के लिए काम करता है, लेकिन मल्टी मॉड्यूल प्रोजेक्ट के लिए नहीं।
अवीक

9

आप शायद इसे पढ़ रहे हैं क्योंकि उपरोक्त समाधानों ने आपके लिए काम नहीं किया है। मेरे पास एक ही मुद्दा था और मैंने यहां बताई गई सभी चीजों की कोशिश की। मेरे संस्करण थे: maven-release-plugin 2.5औरgit 1.7.9

मेरे लिए काम करने वाला समाधान मावेन-रिलीज़-प्लगइन को 2.3.2 संस्करण में अपग्रेड कर रहा था

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <autoVersionSubmodules>true</autoVersionSubmodules>
            </configuration>
        </plugin>
    </plugins>
</build>

4
मेरे पास maven-release-plugin-2.3.2v1.9.3 था और maven-release-plugin-2.5इसे मेरे लिए तय करने के लिए अपग्रेड किया था।
सीन कॉनॉली

मेरे पास काम करने के लिए मैं maven-release-plugin-2.3.1और गिट 1.9.4और अपग्रेड थे maven-release-plugin-2.5
वेल्श

1
2.5.2मेरे लिए समस्या हल करने के लिए प्लगइन को अपग्रेड करना , git के साथ2.4.0
JBCP

शायद यह एक git संस्करण / mvn संस्करण इंटरलॉक मुद्दा है। नवीनतम मावेन (3.3.9) अभी भी रिलीज़ प्लगइन को 2.3.2 में डिफ़ॉल्ट क्यों करता है? क्या यह मावेन बग है? maven.apache.org/ref/3.3.9/maven-model-builder/super-pom.html
स्टीवन आर। लूमिस

4

maven-release-plugin2.5.2 में अपग्रेड करने से मदद मिली (2.5 को अपग्रेड करना; यह कुछ लोगों के लिए काम करता है, लेकिन सभी नहीं, संभवतः सिस्टम के अन्य नए सॉफ़्टवेयर पर निर्भर करता है)। मेरा मानना ​​है कि यह नए प्रदाता में स्वचालित रूप से खींचता है।


बस टी नोट: मेरे लिए सिर्फ 2.5 पर्याप्त था।
मासूमियत

1

मैं बस इसी समस्या में भाग गया, और अन्य उत्तरों और टिप्पणियों से, लगा कि यह संभवतः रिलीज प्लगइन में एक बग था।

मेरे मामले में, मैं प्लगइन के संस्करण 2.4 का उपयोग एक नए और ज्यादातर-खाली प्रोजेक्ट संरचित में निम्नानुसार कर रहा था:

my-repo.git/
  module-parent/     # running the release from here
  (module-child-1/)  # except I hadn't created it yet
  (module-child-2/)  # except I hadn't created it yet

(समस्या के समाधान से पहले इस परियोजना का स्रोत कोड यहाँ देखा जा सकता है: मेरी परियोजना उसी समस्या के साथ ।)

मावेन- रिलीज़-प्लगइन: 2.4.1 के रिलीज़ नोटों को देखकर ऐसा लग रहा था कि शायद MRELEASE-830 में इसे सुलझाने का एक शॉट था।

मुझे यकीन नहीं है कि अगर वास्तव में यह समस्या थी, लेकिन मेरे प्रोजेक्ट को 2.4.1 में अपग्रेड करने से मेरे लिए इसे हल कर दिया गया । आशा है कि यह आपके लिए भी समस्या का समाधान करेगा!


1

मुझे उसी समस्या का सामना करना पड़ा जब साइबरविन + मावेन + गिट का उपयोग कर रहा था। इसमें कोई त्रुटि नहीं दिखाई दी, लेकिन पोम परिवर्तन करने का प्रयास नहीं किया, बस इसके बाद रुक गया git status:

[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Tagging release with the label portal-automation-0.3.9...
[INFO] Executing: cmd.exe /X /C "git tag -F C:\cygwin64\tmp\maven-scm-1212196933.commit portal-automation-0.3.9"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git push git@barrel.mitre.org:org-mitre-caasd/portal-automation.git portal-automation-0.3.9"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git ls-files"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Transforming 'portal-automation'...
[INFO] Not removing release POMs
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Release preparation complete.

जैसा कि आप देख सकते हैं, कोई त्रुटि नहीं, बस स्थिति की जाँच के बाद प्रतिबद्ध नहीं किया। हालाँकि जब मैं इसके बजाय विंडोज़ कमांड प्रॉम्प्ट से भागा:

...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git commit --verbose -F C:\Users\ltheisen\AppData\Local\Temp\maven-scm-2030091036.commit pom.xml"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Executing: cmd.exe /X /C "git push git@barrel.mitre.org:org-mitre-caasd/portal-automation.git master:master"
[INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation
[INFO] Release preparation complete.

आप देख सकते हैं कि यह स्थिति की जाँच के बाद किया। निश्चित नहीं कि यह आपका मुद्दा है या नहीं, लेकिन इसने मेरे लिए काम किया।

ध्यान दें कि इसका मतलब होगा कि आपको msysgit इंस्टॉल करना होगा


1

मैं स्थानीय रूप से 1.8.x का उपयोग कर रहा हूं और इसी तरह की समस्या में भाग रहा हूं:

maven-scm-plugin करता है

$ git add
$ git status

लेकिन नहीं

$ git commit

Git 1.7.x के साथ किसी अन्य मशीन का उपयोग करें मुझे इस मुद्दे के आसपास काम करने में मदद मिली।

नोट: मैंने maven-scm-plugin 1.8.1 या 1.9, maven-release-plugin 2.4.1 या 2.4.2 का उपयोग करने की कोशिश की।


1.7.x पर अपग्रेड करने से भी मुझे मदद मिली
CAB

0

इसी तरह की समस्या, लेकिन मुझे यह समस्या थी, जेनकिंस रिलीज़ प्लगिन और गिटलैब का उपयोग करके:

  • पहली बार काम किया।
  • दूसरी बार ऐसा नहीं होगा।

पता चलता है कि हमारे pom.xml में SCM कॉन्फिगर में एक टाइपो था, इसलिए टाइपो वाला प्रोजेक्ट पहली बार में बना। दूसरी बार, मेवेन आउटडेटेड प्रोजेक्ट को एक्सेस कर रहा था और बदलाव न करने की शिकायत की।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.