2013-01-15 19 views
20

पर मेवेन नेक्सस रेपो जोड़ना मैंने अपनी स्थानीय मशीन पर नेक्सस स्थापित किया है। मैं अपनी पोम फ़ाइल को इस रेपो को इंगित करना चाहता हूं। मैं अपनी कस्टम भंडार को अपनी pom.xml फ़ाइल में कैसे जोड़ सकता हूं?मेरे pom.xml

उत्तर

23

Maven - Settings Reference

डाउनलोड और तैनाती के लिए खजाने से पोम की repositories और distributionManagement तत्वों द्वारा परिभाषित कर रहे हैं। हालांकि, उपयोगकर्ता नाम और पासवर्ड जैसी कुछ सेटिंग्स को pom.xml के साथ वितरित नहीं किया जाना चाहिए। इस प्रकार की जानकारी build.xml में बिल्ड सर्वर पर मौजूद होना चाहिए।

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
        http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    ... 
    <servers> 
    <server> 
     <id>server001</id> 
     <username>my_login</username> 
     <password>my_password</password> 
     <privateKey>${user.home}/.ssh/id_dsa</privateKey> 
     <passphrase>some_passphrase</passphrase> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
     <configuration></configuration> 
    </server> 
    </servers> 
    ... 
</settings> 

आईडी: इस सर्वर (उपयोगकर्ता के रूप में प्रवेश करने नहीं) की आईडी है कि भंडार/दर्पण कि Maven से कनेक्ट करने की कोशिश करता है की आईडी घटक मेल खाते है।

उपयोगकर्ता नाम, पासवर्ड: ये तत्व इस सर्वर को प्रमाणीकृत करने के लिए आवश्यक लॉगिन और पासवर्ड को दर्शाते हुए एक जोड़ी के रूप में दिखाई देते हैं।

privateKey, पदबंध: पिछले दो तत्वों की तरह, इस जोड़ी को एक निजी कुंजी के लिए एक रास्ता (डिफ़ॉल्ट ${user.home}/.ssh/id_dsa है) और एक पदबंध, यदि आवश्यक हो निर्दिष्ट करता है। पासफ्रेज और पासवर्ड तत्व भविष्य में बाहरी हो सकते हैं, लेकिन अभी के लिए उन्हें सेटिंग्स.एक्सएमएल फ़ाइल में सादे-पाठ सेट किया जाना चाहिए।

फ़ाइल पैरामिशन, निर्देशिका पैरामिशन: जब परिनियोजन पर कोई रिपॉजिटरी फ़ाइल या निर्देशिका बनाई जाती है, तो इनका उपयोग करने की अनुमतियां होती हैं। प्रत्येक के कानूनी मान तीन अंकों की संख्या corrosponding * nix फ़ाइल अनुमतियों, यानी है। 664, या 775.

नोट: यदि आप सर्वर पर लॉगिन करने के लिए एक निजी कुंजी का उपयोग करते हैं, तो सुनिश्चित करें कि आप तत्व को छोड़ दें। अन्यथा, कुंजी को अनदेखा कर दिया जाएगा।

आपको बस करना चाहिए id, username और password

है id और URL इस तरह से अपनी pom.xml में परिभाषित किया जाना चाहिए:

<repositories> 
    ... 
    <repository> 
     <id>acme-nexus-releases</id> 
     <name>acme nexus</name> 
     <url>https://nexus.acme.net/content/repositories/releases</url> 
    </repository> 
    ... 
</repositories> 

आप करने के लिए एक उपयोगकर्ता नाम और पासवर्ड की जरूरत है अपने सर्वर, आपको इसे एन्क्रिप्ट करना चाहिए। Maven Password Encryption

4

से Apache Maven site

<project> 
    ... 
    <repositories> 
    <repository> 
     <id>my-internal-site</id> 
     <url>http://myserver/repo</url> 
    </repository> 
    </repositories> 
    ... 
</project> 

"डाउनलोड और तैनाती के लिए खजाने खजाने और पोम के distributionManagement तत्वों द्वारा परिभाषित कर रहे हैं। हालांकि, इस तरह यूज़रनेम और पासवर्ड के रूप में कुछ सेटिंग के साथ वितरित नहीं किया जाना चाहिए pom.xml। ​​इस प्रकार की जानकारी build.xml में बिल्ड सर्वर पर मौजूद होना चाहिए। " - Apache Maven site - settings reference

<servers> 
    <server> 
     <id>server001</id> 
     <username>my_login</username> 
     <password>my_password</password> 
     <privateKey>${user.home}/.ssh/id_dsa</privateKey> 
     <passphrase>some_passphrase</passphrase> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
     <configuration></configuration> 
    </server> 
</servers> 
2

maven setting reference से, आप अपने उपयोगकर्ता नाम/पासवर्ड एक pom.xml में

खजाने डाउनलोड और तैनाती के लिए रख सकते हैं खजाने और पोम के distributionManagement तत्वों द्वारा परिभाषित कर रहे हैं। हालांकि, उपयोगकर्ता नाम और पासवर्ड जैसी कुछ सेटिंग्स को pom.xml के साथ वितरित नहीं किया जाना चाहिए। इस प्रकार की जानकारी build.xml में बिल्ड सर्वर पर मौजूद होना चाहिए।

आपको पहले अपने पोम में एक संग्रह को जोड़ सकते हैं और फिर $ MAVEN_HOME/conf/settings.xml में नाम/पासवर्ड जोड़ें:

<servers> 
    <server> 
     <id>my-internal-site</id> 
     <username>yourUsername</username> 
     <password>yourPassword</password> 
    </server> 
    </servers> 
+0

नहीं जरूरी सच। आप इसे अपने पीओएम या अपनी सेटिंग्स.एक्सएमएल में डाल सकते हैं। चाहे किसी को इसे रखना चाहिए, विशेष उपयोग मामले से संबंधित राय का मामला है। कथन "नहीं कर सकता" मेवेन सेटिंग्स संदर्भ में राय पढ़ रहा है। – ingyhere

9

सब मैं अत्यधिक पढ़ने की सिफारिश कर सकते सबसे पहले Nexus book। यह एक मैवेन रिपोजिटरी मैनेजर का उपयोग करने के लाभों की व्याख्या करेगा।

इस ओर जाता है मुझे सवाल करने के लिए क्यों आप अपने पोम फ़ाइल में फेरबदल:

कैसे नेक्सस उपयोग करने के लिए अपने Maven निर्माण कॉन्फ़िगर करने के लिए पर एक अनुभाग है? मुझे संदेह है कि आप वास्तव में क्या करना चाहते हैं सेटअप नेक्सस को रिमोट रिपोजिटरी दर्पण के रूप में सेट करना है। यह आपके मैवेन सेटिंग्स फ़ाइल में किया जाता है।

निम्नलिखित बताता Maven अपने डिफ़ॉल्ट भंडार (Maven Central के बजाय)

<settings> 
    .. 
    .. 
    <mirrors> 
    <mirror> 
     <id>nexus</id> 
     <url>http://localhost:8081/nexus/content/groups/public</url> 
     <mirrorOf>central</mirrorOf> 
    </mirror> 
    </mirrors> 

यह व्यवहार वांछित है आपके Nexus भंडार सेंट्रल (से लिया गया कैश कलाकृतियों के लिए कॉन्फ़िगर किया गया है के बाद से के रूप में नेक्सस का उपयोग जो निर्माण के लिए अच्छा है प्रदर्शन)।

नोट:

  • "सार्वजनिक" भंडार समूह आपके Nexus उदाहरण (सिर्फ Maven केन्द्रीय) द्वारा प्रॉक्सी अन्य खजाने शामिल हो सकते हैं। आप संभावित रूप से इस व्यवहार को चाहते हैं, क्योंकि यह सभी भंडार प्रबंधन को केंद्रीकृत करता है। यह सिर्फ आपके संगठन के बाहर के लोगों के लिए कम पोर्टेबल बनाता है।
5

यह जवाब यहां लगता है एक उद्यम उपयोग मामले में जहां एक नेक्सस सर्वर से अधिक उपयोगकर्ता हैं और परियोजना आधारित अलगाव (संरक्षण) एक स्वचालित निर्माण (सीआई) जेनकींस तरह प्रणाली का उपयोग कर के साथ प्रयोक्ता आईडी के आधार पर समर्थन नहीं करते । आप विभिन्न परियोजनाओं के लिए आवश्यक विभिन्न उपयोगकर्ता आईडी को संतुष्ट करने के लिए सेटिंग्स.xml फ़ाइल बनाने में सक्षम नहीं होंगे। मुझे यकीन नहीं है कि इसे कैसे हल किया जाए, नेक्सस को रीपॉजिटरीज़ पढ़ने के लिए अनाम पहुंच तक छोड़कर, जब तक कि परियोजनाएं उनके pom.xml में प्रोजेक्ट-विशिष्ट जेनेरिक उपयोगकर्ता आईडी स्टोर नहीं कर सकतीं।

+0

+1 - सही।पृष्ठ पर अन्य टिप्पणियां बॉक्स से बाहर नहीं सोच रही हैं या दस्तावेज़ीकरण को पूरी तरह गलतफहमी नहीं कर रही हैं। – ingyhere

+0

@ केविन-बुच आप प्रति परियोजना एक _settings.xml_ फ़ाइल क्यों नहीं बनाते हैं, और स्पष्ट रूप से जेनकिन्स नौकरी से _mvn clean install -s projectA-settings.xml_ के साथ दाएं से लिंक करते हैं? – ajeans

1

आप नहीं चाहते हैं या आप settings.xml फ़ाइल को संशोधित नहीं कर सकते हैं, तो आप अपने रूट परियोजना में एक नया बना सकते हैं, और Maven -s पैरामीटर के साथ एक पैरामीटर के रूप में यह गुजर फोन:

$ mvn COMMAND ... -s settings.xml 
संबंधित मुद्दे