2012-01-24 13 views
5

के साथ रिलीज करना मैवेन रिलीज प्लगइन के माध्यम से रिलीज करने का प्रयास कर रहा हूं और एससीएम कॉन्फ़िगरेशन के साथ समस्याएं हैं। मैं mcleclipse स्थापित के साथ ग्रहण का उपयोग कर रहा हूँ। हम Mercurial का उपयोग करते हैं और मेरी मशीन (Win7) पर मेरे पास TortoiseHg स्थापित है। मेरे पास एक टेस्ट प्रोजेक्ट है जो एक जार बनाता है। हम अपनी परियोजनाओं के लिए एक सुपर पोम का उपयोग करते हैं, इसलिए टेस्ट प्रोजेक्ट पोम भी करता है। मैं सुपर पोम में इस की स्थापना की है:मेवेन/हडसन/मर्कुरियल

<build> 
    <plugins> 
     .... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-scm-plugin 
      <version>1.6</version> 
      <configuration> 
       <connectionType>connection</connectionType> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

मेरे परीक्षण परियोजना पोम इस तरह दिखता है:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
     http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>my.group</groupId> 
    <artifactId>TestJar 
    <version>1.0-SNAPSHOT</version> 
    <parent>  
     <groupId>my.group</groupId> 
     <artifactId>super-pom</artifactId> 
     <version>1.0</version> 
    </parent> 
    <scm> 
     <connection> 
      scm:hg:ssh://our.scm.server:22//path/to/TestJarProject 
     </connection> 
     <developerConnection> 
      scm:hg:ssh://our.scm.server:22//path/to/TestJarProject 
     </developerConnection> 
    </scm> 
</project> 

नोट है कि हम अपने एससीएम सर्वर से ssh। मुझे उन मुद्दों में से कुछ संदेह है जिनसे मुझे सामना करना पड़ रहा है। मैं केवल उन उदाहरणों को ढूंढने में सक्षम हूं जो http का उपयोग करते हैं।

<servers> 
    ... 
    <server> 
     <id>our.scm.server</id> 
     <username>username</username> 
     <password>password</password> 
    </server> 
</servers> 

जब मैं रिहाई चलाएँ:: रिलीज को तैयार:

मेरी settings.xml फ़ाइल में, मैं यह जोड़ा करते हैं, एक TortoisePlink संवाद मुझे पासवर्ड के लिए उत्साह दिखाई नहीं देता। संवाद बॉक्स "@ our.scm.server का पासवर्ड" पूछ रहा है।

ऐसा प्रतीत होता है कि यह settings.xml फ़ाइल से उपयोगकर्ता नाम या पासवर्ड का उपयोग नहीं कर रहा है, जिसे मैं सर्वर तत्व जोड़कर उम्मीद कर रहा था। क्या यह होना चाहिए? मैंने कनेक्शन यूआरएल में अपना उपयोगकर्ता नाम जोड़ने का भी प्रयास किया है:

<connection> 
    scm:hg:ssh://[email protected]:22//path/to/TestJarProject 
</connection> 

लेकिन अभी भी खाली उपयोगकर्ता नाम के पासवर्ड के लिए संकेत दिया गया है।

सवाल

किसी को भी सफलतापूर्वक Maven विज्ञप्ति करते हुए मर्क्युरियल से कनेक्ट करने के लिए प्रयोग किया जाता ssh गया है?

जब से मैं अंत में हडसन में बनाता है क्या करना चाहते हैं, मैं रिलीज करने के लिए एक हडसन काम की स्थापना की है, लेकिन यह इस त्रुटि के साथ विफल:

[INFO] o.h.m.e.h.MavenExecutionResultHandler - Build failed with exception(s) 
[INFO] o.h.m.e.h.MavenExecutionResultHandler - [1] org.apache.maven.lifecycle.\ 
    LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:\ 
    maven-release-plugin:2.0:prepare (default-cli) on project TestJar: Cannot \ 
    prepare the release because you have local modifications : 
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/_maven.repositories:unknown] 
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/nms-super-pom-1.0.pom:unknown] 
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/nms-super-pom-1.0.pom.sha1:unknown] 
... many, many more lines of this nature ..... 

प्रश्न दो

क्या स्थानीय संशोधन मेवेन सामना कर रहा है?

चूंकि प्रोजेक्ट रेपो से खींचा जा रहा है, इसलिए एकमात्र परिवर्तन जो मैं सोच सकता हूं वह है पोम फ़ाइल का अद्यतन (संस्करण से स्नैपशॉट को हटा रहा है)। लेकिन मैवेन इस बारे में शिकायत नहीं करनी चाहिए क्योंकि इससे बदलाव आया है, नहीं?

अद्यतन

khmarbaise के सुझाव के अनुसार, मैं अपने माता पिता पोम को यह जोड़ दिया है:

<pluginManagement> 
    <plugins> 
     <plugin> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.2.2</version> 
     </plugin> 
    </plugins> 
</pluginManagement> 
+0

सबसे पहले अपने माता-पिता में एक प्लगइन प्रबंधन अनुभाग करें और मेवेन-रिलीज-प्लगइन की एक नई रिलीज कॉन्फ़िगर करें क्योंकि आप 2.0 का उपयोग कर रहे हैं जो कि थोड़ा सा पुराना है ... आप किस मेवेन संस्करण का उपयोग करते हैं? हडसन एक अद्यतित एक? हडसन की रिलीज प्लगइन का उपयोग करना? – khmarbaise

+0

हम हडसन 2.1.2 और मेवेन 3 (हडसन के साथ बंडल) का उपयोग कर रहे हैं – sdoca

+0

क्या आपने पहले जांच की है कि क्या आप हडसन के बिना कमांड लाइन पर रिलीज़ कर सकते हैं? (प्लगइन प्रबंधन अनुभाग जोड़ा गया?) – khmarbaise

उत्तर

2

सवाल

किसी को भी सफलतापूर्वक से कनेक्ट करने के लिए ssh का इस्तेमाल किया गया है मेवेनियल करते समय Mercurial?

उत्तर यह प्रतीत होता है कि मेवेन रिलीज प्लगइन केवल https के साथ काम करता है।

https://www.mercurial-scm.org/wiki/HgWebDirStepByStep

प्रश्न दो

Maven क्या स्थानीय संशोधन का सामना कर रहा है: हम आम तौर पर इस पृष्ठ पर निर्देशों का पालन करके हमारे मर्क्युरियल सर्वर पर काम कर https प्राप्त करने में सक्षम थे?

स्थानीय संशोधन .maven निर्देशिका है जो निर्माण के दौरान बनाई गई है। फ़ाइल में .maven/* जोड़कर, मैं बिल्ड को पूरा करने में सक्षम था।

0

मैं अभी इस पुन: पेश करने में असमर्थ हूं, लेकिन पहले अनुभव से मुझे याद है कि एसएसएच कनेक्शन केवल कुंजी-आधारित प्रमाणीकरण के साथ काम करते हैं, न कि उपयोगकर्ता नाम और पासवर्ड के साथ। यह रिलीज प्लगइन और/या इसके Mercurial समर्थन के लिए जरूरी नहीं है।

संपादित करें: मैंने Mercurial और रिलीज प्लगइन संस्करण 2.4.1 के साथ कुंजी-आधारित एसएसएच एक्सेस आजमाया है, और यह अच्छी तरह से काम करता है। समस्याओं का एक संभावित स्रोत एससीएम यूआरएल प्रारूप है। मेरे मामले में यह बताया गया है:

scm:hg:ssh://[email protected]/path 

तो आपके सवाल का एक करने के लिए जवाब है: हाँ, लेकिन साथ नहीं उपयोगकर्ता नाम/पासवर्ड प्रमाणीकरण। मुझे किसी भी "स्थानीय संशोधन" समस्या का सामना नहीं हुआ, लेकिन मैंने अपने .hgignore में लक्ष्य रखा है ताकि यह हो।