documentation के अनुसार, मेवेन रिलीज: प्रोजेक्ट को लक्ष्य जांचने के लिए प्रदर्शन करें और उसके बाद इसे बनाने के लिए एक नया मैवेन उदाहरण दें। किसी कारण से फोर्कड उदाहरण उपयोगकर्ता के settings.xml
को अनदेखा करता है, जो मेरे मामले में एक त्रुटि का कारण बनता है क्योंकि उस फ़ाइल में ऐसी संपत्ति की परिभाषा है जिसका उपयोग पेरेंट पोम में रिपॉजिटरी के यूआरएल को लिखने के लिए किया जाता है। एक "गठजोड़" प्रोफ़ाइल जो हमेशा सक्रिय है में एक संपत्ति कीमैवेन रिलीज से बाहर की गई प्रक्रिया: प्लगइन निष्पादित उपयोगकर्ता की सेटिंग्स.xml को अनदेखा करता है?
उपयोगकर्ता की settings.xml
परिभाषा।<profiles> <profile> <id>nexus</id> <properties> <dist.url>http://host.com/nexus/content/repositories</dist.url> </properties> </profile> </profiles> <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
लिए अभिभावकों की pom.xml
परिभाषित संपत्ति का प्रयोग भंडार का यूआरएल की रचना करने के।<distributionManagement> <repository> <id>nexus</id> <url>${dist.url}/releases</url> </repository> </distributionManagement>
कमान मार डाला:
mvn release:perform
आउटपुट (के बाद यह हो रही है इंगित करता है सफलतापूर्वक बाहर की जाँच की, बनाया गया है, का परीक्षण किया और परियोजना पैक):
[INFO] Uploading: ${dist.url}/releases/com/acme/access/my-project/1.0/my-project-1.0.jar [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] BUILD FAILURE [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] Total time: 3.659s [INFO] [INFO] Finished at: Wed Aug 01 14:40:23 EDT 2012 [INFO] [INFO] Final Memory: 21M/307M [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [WARNING] The requested profile "nexus" could not be activated because it does not exist. [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project my-project: Failed to deploy artifacts: Could not transfer artifact com.acme.access:my-project:jar:1.0 from/to nexus (${dist.url}/releases): Error transferring file: no protocol: ${dist.url}/releases/com/acme/access/my-project/1.0/my-project-1.0.jar -> [Help 1]
सूचना कैसे फोर्कड मैवेन इंस्टेंस $ {dist.url} पर अपलोड करने का प्रयास कर रहा है, जो इंगित करता है कि सेटटी में परिभाषित संपत्ति ngs.xml पढ़ा नहीं गया था। साथ ही, चेतावनी संदेश सूचित करता है कि प्रोफ़ाइल "नेक्सस" नहीं मिली थी। मुझे लगता है कि मुख्य मेवेन उदाहरण ने प्रोफाइल जानकारी को फोर्क किए गए इंस्टेंस में पास कर दिया है, इसलिए इसे देखने के लिए पता था, लेकिन चूंकि उसने उपयोगकर्ता की सेटिंग्स.xml को अनदेखा किया (या नहीं मिला), यह उस प्रोफ़ाइल को नहीं मिला।
एक ही रास्ता मैं नाकाम करने के लिए इस मैन्युअल रूप से Maven के कमांड लाइन -s
तर्क प्लगइन के arguments
तर्क द्वारा "लिपटे" के उपयोग के माध्यम settings.xml
फ़ाइल का स्थान निर्दिष्ट करने के लिए है पाया है,
mvn release:perform -Darguments="-s C:\Users\theuser\.m2\settings.xml"
में के रूप में प्लगइन एक अपेक्षित/सही तरीके से व्यवहार कर रहा है? जैसा कि मैंने ऊपर किया है, फ़ाइल के स्थान को निर्दिष्ट किए बिना उपयोगकर्ता के settings.xml
के अंदर संपत्ति परिभाषा को रखने का कोई तरीका है?
अधिक जानकारी:
समस्या प्लगइन उपयोगकर्ता के
settings.xml
नहीं मिल रहा है, यह काम करने के लिए कारण वैश्विकsettings.xml
में प्रोफ़ाइल जानकारी को कॉपी के रूप में करता है के साथ विशेष रूप से हो रहा है।उपयोगकर्ता का
settings.xml
ठीक से नामित/बनाया गया है क्योंकिhelp:active-profiles
चल रहा है यह इंगित करता है कि प्रोफ़ाइल सक्रिय है।mvn clean deploy
के साथ मैन्युअल रूप से निर्माण और तैनाती भी सही ढंग से काम करती है (यानी, भंडार URL सही ढंग से गणना की जाती है और आर्टिफैक्ट अपलोड किया जाता है)।
मुझे लगता है कि मेरे मामले में इसी प्रकार की समस्या है। Http://stackoverflow.com/questions/18636196/maven-issue-the-goal-you- निर्दिष्ट-requires-a-project-to-execute-but- कहीं नहीं -इस –