के साथ रिलीज करना मैवेन रिलीज प्लगइन के माध्यम से रिलीज करने का प्रयास कर रहा हूं और एससीएम कॉन्फ़िगरेशन के साथ समस्याएं हैं। मैं 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>
सबसे पहले अपने माता-पिता में एक प्लगइन प्रबंधन अनुभाग करें और मेवेन-रिलीज-प्लगइन की एक नई रिलीज कॉन्फ़िगर करें क्योंकि आप 2.0 का उपयोग कर रहे हैं जो कि थोड़ा सा पुराना है ... आप किस मेवेन संस्करण का उपयोग करते हैं? हडसन एक अद्यतित एक? हडसन की रिलीज प्लगइन का उपयोग करना? – khmarbaise
हम हडसन 2.1.2 और मेवेन 3 (हडसन के साथ बंडल) का उपयोग कर रहे हैं – sdoca
क्या आपने पहले जांच की है कि क्या आप हडसन के बिना कमांड लाइन पर रिलीज़ कर सकते हैं? (प्लगइन प्रबंधन अनुभाग जोड़ा गया?) – khmarbaise