मैं प्रॉक्सी के माध्यम से मावेन का उपयोग कैसे करूं?


130

मैं एक प्रॉक्सी के माध्यम से मावेन के उपयोग के अपने अनुभव को साझा करना चाहता हूं।

आप सबसे अधिक संभावना अपवादों और संदेशों का सामना करेंगे:

इसके लिए रिपॉजिटरी मेटाडेटा: 'org.apache.maven.plugins' से पुनर्प्राप्त नहीं किया जा सकता है 
रिपॉजिटरी: एक त्रुटि के कारण केंद्रीय: फ़ाइल स्थानांतरित करने में त्रुटि: कनेक्शन ने इनकार कर दिया: कनेक्ट करें

या

[चेतावनी] org.apache.maven.plugins के लिए प्लगइन विवरणक को पुनर्प्राप्त करने में विफल: maven-clean-
प्लगइन: 2.5: Plugin org.apache.maven.plugins: maven-clean-plugin: 2.5 या इसका एक 
निर्भरता को हल नहीं किया जा सकता है: के लिए विरूपण साक्ष्य विवरण पढ़ने में विफल 
org.apache.maven.plugins: maven-सफाई प्लगइन: जार: 2.5

प्रॉक्सी सर्वर का उपयोग करने के लिए मावेन को कैसे कॉन्फ़िगर करें?


(किसी को भी) एक वास्तविक प्रश्न में इसे फिर से समझने का मन (जैसे: मैं प्रॉक्सी के माध्यम से मावेन का उपयोग कैसे करूं?) फिर आप अपने प्रश्न निकाय को एक उत्तर के रूप में पोस्ट कर सकते हैं, जो स्टैकऑवरफ्लो प्रारूप के साथ अधिक इनलाइन हो सकता है ..
टिम

मैंने आपको बोगदान के लिए इसे फिर से लिखा है, कृपया अपनी मूल सामग्री को एक उत्तर के रूप में पोस्ट करें यदि आप चाहें
रिच सेलर

ऐसा लगता है कि हमने उसी समय संपादित किया
रिच सेलर

जवाबों:


145

मावेन के लिए एक प्रॉक्सी स्थापित करने के विवरण के लिए, मिनी गाइड देखें

अनिवार्य रूप से आपको या तो वैश्विक सेटिंग्स ( [maven install]/conf/settings.xml), या उपयोगकर्ता सेटिंग्स ( ${user.home}/.m2/settings.xml) को सही तरीके से कॉन्फ़िगर किया गया है। सार्वजनिक स्थान पर सादे पाठ में पासवर्ड संग्रहीत करने से बचने के लिए अपनी उपयोगकर्ता सेटिंग में ऐसा करना बेहतर है।

Maven 2.1 ने पासवर्ड एन्क्रिप्शन शुरू किया , लेकिन मुझे यह जांचने के लिए राउंड नहीं मिला है कि क्या एन्क्रिप्शन प्रॉक्सी सेटिंग्स के साथ-साथ रिपॉजिटरी पासवर्ड के लिए भी लागू होता है (यह नहीं देखें कि यह क्यों नहीं होगा)।

जानकारी के लिए, आपकी सेटिंग में एक टिप्पणी-रहित प्रॉक्सी कॉन्फ़िगरेशन है। इसे संशोधित करने के तरीके के बारे में 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">
[...]
  <proxies>
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.somewhere.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
    </proxy>
  </proxies>
[...]
</settings>

धन्यवाद, लेकिन यह पोस्ट एक सवाल के बजाय दूसरों के लिए एक टिप है। मैंने इस समस्या को पहले ही हल कर लिया है, लेकिन बहुत अधिक समय गैर-स्पष्ट चीजों पर खर्च किया है। मैंने इसे पोस्ट किया ताकि यह किसी के लिए उपयोगी हो सके।
बोगदान

7
खिचड़ी भाषा में A2. निर्देशिका में सेटिंग। xml फ़ाइल खोजें। किसी भी विचार क्यों? @ रिच सेलर
एरॉक्स 66

5
आपको इसे वहां रखना होगा। आप maven_home से एक नमूना सेटिंग। Xml पा सकते हैं, वह स्थान जहाँ आपने maven binaries को अनज़िप किया है।
रवि

और अगर प्रॉक्सी को प्रमाणीकरण की आवश्यकता नहीं है, <username>और <password>तत्वों को हटा दिया जाना चाहिए (और खाली सामग्री नहीं दी गई है)। मुझे यह पता लगाने में थोड़ा समय लगा।
dmcontador

50

मोज़े प्रॉक्सी का उपयोग कैसे करें?

कहीं सर्वर पर SSH सुरंग स्थापित करें:

ssh -D $PORT $USER@$SERVER

लिनक्स (बैश):

export MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"

खिड़कियाँ:

set MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"

2
के माध्यम से एक मोज़े प्रॉक्सी का उपयोग करना MAVEN_OPTSएकमात्र तरीका है जिससे मैं एचवीटीपीएस पर डाउनलोड करने के लिए मावेन प्राप्त कर सकता हूं। HTTP या HTTPS प्रॉक्सी, या तो के माध्यम से उपयोग करना MAVEN_OPTSया settings.xml, परिणामों मेंorg.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute INFO: I/O exception (java.net.SocketException) caught when processing request to {tls}->http://proxy.mycompany.com:911->https://repo.maven.apache.org:443: SOCKS: TTL expired
मिहाई Capotă

के लिए httpप्रॉक्सी:export MAVEN_OPTS="-DproxyHost=127.0.0.1 -DproxyPort=$PORT"
ओमिद

उत्कृष्ट धन्यवाद। यदि आप केवल एक ही कमांड के लिए उन विकल्पों का उपयोग करना चाहते हैं, तो आप टाइप कर सकते हैं: एक ही सत्र में MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080" mvn clean installअगले mvnकमांड बिना किसी प्रॉक्सी के होंगे।
एरिक डुमिनील

29

मुझे यह समस्या भी थी, और मैंने settings.xmlअपने .m2फ़ोल्डर में फ़ाइल को संपादित करके इसे हल किया । मेरा settings.xmlअब इस तरह है:

<settings>
  <proxies>
    <proxy>
      <id>genproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxyHost</host>
      <port>3128</port>
      <username>username</username>
      <password>password</password>
    </proxy>
 </proxies>
</settings>

1
यह मेरे मामले में जार फ़ाइलों को डाउनलोड नहीं कर रहा है। मैंने सब कुछ आज़माया है
फैजान मुबाशेर

28

यह भी ध्यान दें कि कुछ प्लगइन्स (दूरस्थ-संसाधन दिमाग में आते हैं) एक बहुत पुरानी लाइब्रेरी का उपयोग करते हैं जो केवल MAVEN_OPTS के माध्यम से प्रॉक्सी कॉन्फ़िगरेशन को स्वीकार करता है;

-Dhttp.proxyHost=<host> -Dhttp.proxyPort=<port> -Dhttps.proxyHost=<host> -Dhttps.proxyPort=<port>

हो सकता है कि आप इसके लिए किसी नियम पर अटके हों।


मेरे लिए Ubuntu 14.04 पर maven 3.0.5 के साथ Ubuntu रिपॉजिटरी से काम नहीं किया। सेटिंग्स में प्रॉक्सी को कॉन्फ़िगर करना। xml फ़ाइल ने काम किया।
मिहाई कैपोटे 22

1
मेरे लिए उबंटू 14.04 पर मावेन 3.0.4 के साथ काम किया
rmv

MAVEN_OPTS को इस तरह सेट करने की आवश्यकता का एक उदाहरण मावेन का उपयोग करके स्रोत से मावेन का निर्माण कर रहा है। MAVEN_OPTS के बिना, यह कई JAR डाउनलोड करने के बावजूद LICENSE-2.0 को डाउनलोड करने में विफल रहता है।
फर्माक्विड

@krosenvold आपको धन्यवाद, इस समाधान ने मेरे लिए काम किया। मैंने पहले ही सेटिंग में प्रॉक्सी सेट कर दिया था। xml लेकिन एक cxf प्लगइन था जो wsdl से कोड उत्पन्न करना चाहता था जो विफल हो रहा था। इससे मेरी समस्या ठीक हो गई।
विशाल विजयन

23

मावेन प्रॉक्सी सेट करने के लिए :

अपनी ~ / .m2 / settings.xml फ़ाइल में परदे के पीछे के सत्र को संपादित करें । यदि आप फ़ाइल नहीं ढूंढ सकते, तो एक बनाएँ।

<settings>
<proxies>
    <proxy>
        <id>httpproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
<proxy>
        <id>httpsproxy</id>
        <active>true</active>
        <protocol>https</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>

</proxies>
</settings>

या

अपने {M2_HOME} /conf/settings.xml में प्रॉक्सी सत्र संपादित करें

आशा करता हूँ की ये काम करेगा.. :)


15

वे 2 मुद्दों द्वारा सबसे अधिक संभावना है:

  1. आपको अपनी सेटिंग में प्रॉक्सी कॉन्फ़िगरेशन जोड़ना होगा। xml यहां आपके उपयोगकर्ता नाम फ़ील्ड में एक ट्रिक दी गई है। सुनिश्चित करें कि यह domain \ username जैसा दिखता है। वहां डोमेन सेट करना और इस सटीक स्लैश को रखना महत्वपूर्ण है '\'। यदि आप अपने पासवर्ड में गैर xml- मित्र अक्षर हैं, तो आप <! [CDATA []]> टैग का उपयोग करना चाहते हैं।
  2. मैंने देखा है मावेन 2.2.0 कभी-कभी प्रॉक्सी के माध्यम से बिल्कुल भी काम नहीं करता है, जहां 2.2.1 पूरी तरह से ठीक काम करता है।

यदि उनमें से कुछ को छोड़ दिया गया है - मावेन यादृच्छिक त्रुटि संदेशों के साथ विफल हो सकता है।

बस उम्मीद है कि मैंने किसी को इस मुद्दे पर 6 घंटे के लिए गुगली करने से बचाया है, जैसे मैंने किया।


क्या आप NTLM प्रॉक्सी का उपयोग कर रहे हैं? मिनी गाइड से: "कृपया ध्यान दें कि [c] समवर्ती NTLM परदे के पीछे समर्थित नहीं हैं क्योंकि उनका परीक्षण नहीं किया गया है। इस काम को करने के लिए आप JDK 1.4+ पर संबंधित सिस्टम गुणों का उपयोग करने में सक्षम हो सकते हैं।"
रिच सेलर

इस बारे में निश्चित नहीं है। यह एक कॉर्पोरेट प्रॉक्सी है जो वास्तव में मुझसे 600 मील की दूरी पर है और सिस्टम प्रशासन से कोई भी इस सप्ताह के अंत में कार्यालय में नहीं है। इसलिए अब किसी से नहीं पूछ सकते। यह पता लगाना दिलचस्प होगा। मुझे पता है कि यह http, मोजे और अन्य प्रोटोकॉल का समर्थन करता है। शायद यह NTML भी है।
बोगदान

14

बस इसके साथ अपने स्वयं के अनुभवों को जोड़ने के लिए: मेरी कंपनी का प्रॉक्सी है http://webproxy.intra.companyname.com:3128। इस प्रॉक्सी के माध्यम से काम करने के लिए, सेटिंग्स को बिल्कुल इस तरह होना चाहिए

<settings>
  <proxies>
    <proxy>
      <id>default</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>webproxy.intra.companyname.com</host>
      <port>3128</port>
    </proxy>
  </proxies>
</settings>

कुछ अन्य प्रॉक्सी-कॉन्फ़िगरेशन फ़ाइलों के विपरीत, protocolयहां बताया गया है कि प्रॉक्सी सर्वर से कैसे कनेक्ट किया जाए, न कि किस प्रकार के प्रोटोकॉल को अनुमानित किया जाए। httpलक्ष्य का हिस्सा होस्टनाम से अलग करना होगा, अन्यथा यह काम नहीं करेगा।


इस समय मैंने इसके विपरीत प्रयोग किया। यहाँ प्रोटोकॉल का वर्णन है कि किस प्रोटोकॉल को इस प्रॉक्सी का उपयोग करना चाहिए। मैंने बस एक https प्रोटोकॉल प्रॉक्सी कॉन्फ़िगर करने के लिए हासिल किया, जो <प्रोटोकॉल> https </ प्रोटोकॉल> का उपयोग करके http प्रॉक्सी से कनेक्ट होता है
Olivier Amblet

धन्यवाद! यह मेरे लिए काम किया! मेरे पास "http: //" पूर्व-लंबित था और यह विफल हो जाएगा
जेसी मैक्कल

11

धन्यवाद @krosenvold

यदि सेटिंग्स फ़ाइल परिवर्तन काम नहीं करते हैं, तो POM फ़ाइल वाले कमांड प्रॉम्प्ट में यह प्रयास करें।

mvn install -Dhttp.proxyHost=abcproxy -Dhttp.proxyPort=8080 -Dhttps.proxyHost=abcproxy -Dhttps.proxyPort=8080

पासवर्ड बदलने के तुरंत बाद इसने मेरी मदद की।


11

मैं cntlmस्थानीय चलाती हूं , NTLMv2कॉर्पोरेट प्रॉक्सी के साथ प्रमाणित करने और उपयोग करने के लिए पासवर्ड हैश के साथ कॉन्फ़िगर किया गया है

export MAVEN_OPTS="-DproxyHost=127.0.0.1 -DproxyPort=3128"

उस प्रॉक्सी का उपयोग करने के लिए maven। बेशक आप जिस प्रॉक्सी का उपयोग करते हैं, उसका समर्थन करना चाहिए cntlm/ NTLMv2


`सेट MAVEN_OPTS = -DproxyHost = 127.0.0.1 -DproxyPort = 3128 'खिड़कियों के लिए
qxo

PowerShell एक सिस्टम वातावरण चर सेट कर सकता है: [Environment]::SetEnvironmentVariable("MAVEN_OPTS", "-DproxyHost=127.0.0.1 -DproxyPort=3128", "Machine")
बोगिन

6

और इस विषय में जोड़ने के लिए, यहां मेरे अनुभव नीचे दिए गए हैं ... वास्तव में अजीब और समय लेने वाला इसलिए मैंने सोचा कि यह जोड़ने लायक था।

मुझे विंडोज पर पोर्ट-ब्रिज बनाने की कोशिश करने में एक समान समस्या हुई है, निम्न त्रुटियां हो रही हैं:

डाउनलोडिंग: http://repo1.maven.org/maven2/org/apache/portals/bridges-pom/1.0/bridges-pom-1.0.pom
[DEBUG] रीडिंग रिज़ॉल्यूशन ट्रैकिंग फ़ाइल C: \ Documents and Settings \ myuser \ .m2 \ repository \ org \ apache \ portals \ bridges-pom \ 1.0 \ bridges-pom-1.0.pom.lastUpdated।
[DEBUG] रिज़ॉल्यूशन ट्रैकिंग फ़ाइल C: \ Documents and Settings \ myuser \ .m2 \ repository \ org \ apache \ portals \ brums-pom \ 1.0 \ bridges-pom-1.0.pom.lastUpdated लिखी।
[त्रुटि] बिल्ड 1 परियोजना को नहीं पढ़ सका -> [सहायता 1]
org.apache.maven.project.ProjectBuildingException: POMs संसाधित करते समय कुछ समस्याओं का सामना करना पड़ा:
[FATAL] नॉन-रिजॉल्वेबल पैरेंट पोम: आर्टवर्क को ट्रांसफर नहीं कर सका
org.apache.portals: bridges-pom: pom: 1.0 से / to Central (http://repo1.maven.org/maven2): फ़ाइल स्थानांतरित करने में त्रुटि: repo1.maven.org और 'parent.relative.ath' अंक गलत स्थानीय पर
पोम @ लाइन 23, कॉलम 11
...
[ERROR] प्रोजेक्ट org.apache.portals.bridges: portals-bridges-common: 2.0 (H: \ path_to_project \ portals-bridges-common-2.0 \ pom.xml) में 1 त्रुटि है
[त्रुटि] अप्रतिरोध्य माता पिता पोम: विरूपण साक्ष्य को स्थानांतरित नहीं कर सका। org.apache.portals: पुलों-पोम: पोम: 1.0 से / से केंद्रीय (http://repo1.maven.org/maven2):
फ़ाइल स्थानांतरित करने में त्रुटि: repo1.maven.org और 'parent.relativePath' गलत स्थानीय POM @ पंक्ति 23, स्तंभ 11 पर इंगित करता है: अज्ञात होस्ट repo1.maven.org -> [सहायता 2]
...
[त्रुटि] त्रुटियों और संभावित समाधानों के बारे में अधिक जानकारी के लिए, कृपया निम्नलिखित लेख पढ़ें:
[ERROR] [सहायता १] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [सहायता २] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

मैंने कुछ चीज़ों की कोशिश की, जो थोड़ी सी सर्फिंग के बाद हुईं:

  • माता-पिता को खाली करने की कोशिश नहीं की, ताकि माता-पिता को स्थानीय न लगे। यह हडसन के निर्माण में एसओ के सुझाव के अनुसार असफल है: गैर- अप्रभावी माता-पिता पोम और इस भोली मंच में । इसका कोई असर नहीं हुआ।

  • मैंने यह भी सुनिश्चित करने की कोशिश की कि रिपॉजिटरी को स्पष्ट रूप से मेरी सेटिंग में सूचीबद्ध किया गया था। xml लेकिन इसका कोई प्रभाव नहीं था।

  • मैंने तब सुनिश्चित किया कि मावन को रिपॉजिटरी देखने के लिए मजबूर किया गया था, बजाय इसके कि यह अपने इतिहास पर निर्भर है, जैसा कि सरथोन द्वारा इस ब्लॉग में चर्चा की गई है । दुर्भाग्य से, यह मुद्दा नहीं था।

  • कुछ हताशा में, मैंने यह सुनिश्चित करने के लिए अपने MAVEN_OPTS का पुनरीक्षण किया कि मैं अपनी प्रॉक्सी सेटिंग का दोष नहीं पा रहा हूं। ये सही थे, अलिखित मूल्य के साथ:

    MAVEN_OPTS = -http.proxyHost = myproxy.mycompany.com -Dhttp.proxyPort = 8080 -Xmx256m

  • तो, अंत में, मैंने अपनी सेटिंग्स में प्रॉक्सी कॉन्फिग को स्थानांतरित कर दिया। xml और इसने काम किया:

    <proxies>
      <proxy>
        <id>genproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <!--username>proxyuser</username-->
        <!--password>proxypass</password-->
        <host>myproxy.mycompany.com</host>
        <port>8080</port>
        <nonProxyHosts>*.mycompany.com|127.0.0.1</nonProxyHosts>
      </proxy>
    </proxies>

वास्तव में यह निश्चित नहीं है कि मेरे मूल MAVEN_OPTS काम क्यों नहीं कर रहे थे (कोट्स?) जबकि settings.xml config ने काम किया था। मैं फ़िक्स को रिवर्स करना चाहता हूं और प्रत्येक चरण को फिर से जांचना चाहता हूं, लेकिन बहुत समय बर्बाद किया है। के रूप में वापस रिपोर्ट करेंगे।


क्या आपने वास्तव में MAVEN_OPTS में एक उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट किया था?
bcmoney

1
मुझे नहीं लगता कि मैंने किया लेकिन फिर मुझे अपने प्रॉक्सी सर्वर की आवश्यकता नहीं है। जैसा कि आप देख सकते हैं, यह संभव है। सुरक्षा के मुद्दों के अलावा, आप इसे आजमा सकते हैं। मैं इकट्ठा करता हूं कि आपको अभी भी समस्याएँ हो रही हैं जो अब तक दूर हो गई हैं?
wmorrison365

4

मुझे पता है कि यह वास्तव में सवाल का जवाब नहीं है, लेकिन यह इस पोस्ट को खोजने वाले किसी व्यक्ति के लिए जानने के लायक हो सकता है। नेक्सस की तरह मावेन रिपॉजिटरी प्रॉक्सी को स्थापित करना भी संभव है ।

आपके मावेन को स्थानीय नेक्सस प्रॉक्सी से संपर्क करने के लिए कॉन्फ़िगर किया जाएगा, और नेक्सस फिर कलाकृतियों को पुनः प्राप्त (और कैश) करेगा। इसे एक वेब इंटरफेस के माध्यम से कॉन्फ़िगर किया जा सकता है और इसमें (http) प्रॉक्सी के लिए समर्थन है।

यह एक फायदा हो सकता है, विशेष रूप से कंपनी की सेटिंग में, क्योंकि कलाकृतियां स्थानीय रूप से उपलब्ध हैं और तेजी से डाउनलोड की जा सकती हैं, और आप बाहरी मावेन रिपॉजिटरी की उपलब्धता पर निर्भर नहीं हैं।

प्रश्न को वापस लिंक करने के लिए; Nexus के साथ प्रॉक्सी कॉन्फ़िगरेशन के लिए एक अच्छा GUI है, और इसे केवल एक ही स्थान पर करने की आवश्यकता है, और प्रत्येक डेवलपर के लिए नहीं।


3

यदि आप मावेन के लिए प्रॉक्सी सेटअप के लिए नए हैं, तो मेरे मामले में सबसे पहले अपने होम फोल्डर के मौसम की जाँच करें और उसमें .m2फ़ोल्डर है और उसमें एक फाइल होनी चाहिए settings.xml, अगर इसे नहीं बनाया गया है, और इसे पेस्ट करें और इसे बदल दें hostऔर portफिर जरूरत पड़ने पर इसे बदल देंnonProxyHosts

होम फ़ोल्डर - C: \ Users \ {UserName}

<settings>
<proxies>
    <proxy>
        <id>httpproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>
<proxy>
        <id>httpsproxy</id>
        <active>true</active>
        <protocol>https</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>

</proxies>
</settings>

अगर किसी भी मामले में यह सफल नहीं होता है और होम फोल्डर के इस स्थान में परिवर्तन करें

/conf/settings.xml

मैं अपनी IDE के रूप में ग्रहण का उपयोग कर रहा हूँ
आशा है कि यह मदद करेगा !!

नोट: प्रॉक्सी को हटाने के लिए बस settings.xmlकुछ और जगह पर जाएँ


प्रॉक्सी को हटाने के लिए बस settings.xml को कुछ और जगह पर ले जाएँ
Akitha_MJ

1

यदि मावेन प्रॉक्सी के माध्यम से काम करता है, लेकिन कुछ प्लगइन्स नहीं है जो इसे लागू कर रहा है, तो सेटिंग JAVA_TOOL_OPTIONSके साथ -Dhttp*.proxy*सेटिंग भी आज़माएं ।

यदि आप पहले JAVA_OPTSही कर चुके हैं

export JAVA_TOOL_OPTIONS=$JAVA_OPTS

0

ऊपर वर्णित तकनीकों को छोड़कर, कुछ प्रयास के साथ, आप प्रॉक्सी के माध्यम से jproxyloader लाइब्रेरी का उपयोग करके मावेन चला सकते हैं (पेज पर उदाहरण है कि यह कैसे किया जाए: http://jproxyloader.sourceforge.net/ )। यह केवल कलाकृतियों को डाउनलोड करने के लिए मोज़े प्रॉक्सी को सेट करने की अनुमति देता है।

Duanni (सेटिंग -DsocksProxyHost) द्वारा वर्णित समाधान में एक समस्या है। यदि आपके पास स्थानीय डेटाबेस (या url से कनेक्ट होने वाले अन्य परीक्षण जो प्रॉक्सी के माध्यम से नहीं जाना चाहिए) के खिलाफ चल रहे एकीकरण परीक्षण हैं। ये परीक्षण काम करना बंद कर देंगे क्योंकि डेटाबेस से कनेक्शन को प्रॉक्सी के लिए भी निर्देशित किया जाएगा। JProxyLoader की मदद से आप प्रॉक्सी को केवल नेक्सस होस्ट के लिए सेट कर सकते हैं। इसके अतिरिक्त यदि आप चाहते हैं कि आप किसी अन्य प्रॉक्सी के माध्यम से डेटाबेस से कनेक्शन पारित कर सकते हैं।


0

कुछ बार आपको अन्य <proxy></proxy>टैग जोड़ने और प्रोटोकॉल टैग में https निर्दिष्ट करने की आवश्यकता होती है :<protocol>https</protocol>


0

उपरोक्त पोस्टिंग ने मेरी समस्या को हल करने में मदद की। उपरोक्त के अलावा मुझे इसे काम करने के लिए निम्नलिखित बदलाव करने पड़े:

  • सिस्टम प्रॉक्सी सेटिंग का उपयोग करने के लिए संशोधित मावेन की JRE नेट सेटिंग्स (\ jre \ lib \ net.properties)।

    https.proxyHost=proxy DNS
    https.proxyPort=proxy port
  • सेटिंग्स में प्रॉक्सी सर्वर सेटिंग्स शामिल करें। xml। मैंने NTLM प्रमाणीकरण का उपयोग करने के लिए उपयोगकर्ता नाम और पासवर्ड सेटिंग प्रदान नहीं की है।


0

मावेन इसे करने की एक अंतर्निहित पद्धति प्रदान करता है, जिसे सेटिंग्स. xml नामक एक फाइल के माध्यम से किया जाता है , और इसे अन्य उत्तरों में कवर किया गया है। हालाँकि, यह प्रथागत है, विशेष रूप से लिनक्स में, कमांड-लाइन टूल्स के लिए , पर्यावरण चर द्वारा निर्दिष्ट प्रॉक्सीhttps_proxy का स्वचालित रूप से उपयोग करने के लिए

अपने आप को दोहराए जाने वाले सिद्धांत का पालन न करें (जो गलतियों से बचने में आपकी सहायता करने के लिए है), यह अच्छा होगा यदि mvnस्वचालित रूप से भी इसके साथ काम किया जा सके।

यहाँ एक शेल स्क्रिप्ट है जो आवश्यक रूपांतरण बनाती है:

#! /usr/bin/env bash

function javaproxy {
    ## using "Shell Parameter Expansion"
    request_scheme=$1 ; proxy=$2
    notscheme=$(echo ${proxy#*://}) ## parse
    scheme=$(echo ${proxy%${notscheme}}) ## remove
    scheme=$(echo ${scheme%://}) ## strip
    hostport=$(echo ${proxy#*//*}) ## parse
    host=$(echo ${hostport%:*}) ## parse
    port=$(echo ${hostport#${host}}) ## remove
    port=$(echo ${port#:}) ## strip
    scheme=$(echo ${scheme:-http}) ## default
    host=$(echo ${host:-localhost}) ## default
    port=$(echo ${port:-8080}) ## default
    echo -n " -D${request_scheme}.proxyHost=${host}"
    echo -n " -D${request_scheme}.proxyPort=${port}"
}

JTO=""

if [ $http_proxy ] ; then
    JTO="${JTO}$(javaproxy http ${http_proxy})"
fi

if [ $https_proxy ] ; then
    JTO="${JTO}$(javaproxy https ${https_proxy})"
fi

if [ $no_proxy ] ; then
    JTO="${JTO} -Dhttp.nonProxyHosts=$(echo \"${no_proxy}\"|tr ',' '|')"
fi

   export JAVA_TOOL_OPTIONS=${JTO}
   echo "JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS}"

   mvn_friendliness_options+=--update-snapshots
   mvn ${mvn_friendliness_options} $@

आप इसे कुछ इस तरह नाम दे सकते हैं proxied_mvnऔर इसे निम्नानुसार चला सकते हैं:

$ https_proxy=http://localhost:58080 ./proxied_mvn clean package

वैकल्पिक रूप से, आप पर्यावरण सेटअप को अपनी स्टार्टअप स्क्रिप्ट में स्थानांतरित कर सकते हैं।

gotchas

कई चीजें हैं जो गलत हो सकती हैं जब प्रॉक्सी के माध्यम से नेक्सस तक पहुंचने के लिए मावेन को कॉन्फ़िगर करने की कोशिश की जाती है । उम्मीद है, इस लिपि से कुछ अति सूक्ष्म मुद्दों के साथ मदद मिलेगी, लेकिन अन्य बने रहेंगे:

  • Nexus क्रेडेंशियल उपलब्ध और सही (यदि आवश्यक हो तो)

    इससे जाँच करें mvn help:effective-settings

  • मावेन कैशिंग: "संकल्प को फिर से लिखा नहीं जाएगा"

    mvn clean package --update-snapshots

  • मैवेन वॉल-ऑफ-टेक्स्ट आउटपुट - आपको यह सुनिश्चित करने के लिए आउटपुट पर करीब से देखना होगा कि रन के बीच त्रुटि संदेश आसानी से अलग नहीं हैं

  • जावा के पुराने संस्करणों के _JAVA_OPTIONSबजाय की आवश्यकता हो सकती है JAVA_TOOL_OPTIONS

उपसंहार

एक से अधिक तरह के प्रॉक्सी है । इसके विपरीत, एक से अधिक तरीके हैं, जिनसे इस प्रश्न की व्याख्या की गई है - यहां बड़ी संख्या में असमान उत्तरों में योगदान दिया गया है।

मैंने स्पष्ट रूप से (आगे HTTP / HTTPS) वेब प्रॉक्सी सर्वर के मामले को संबोधित किया है , जिसका उपयोग कंपनी नेटवर्क (कुछ कंपनियों के लिए) के भीतर से इंटरनेट तक पहुंचने के लिए किया जाता है। यह SOCKS प्रॉक्सी से विशेष रूप से भिन्न हो सकता है , जिसे यहां कुछ उत्तरों में भी संबोधित किया गया है।

वैसे, चूंकि यह उपयोग करता है JAVA_TOOL_OPTIONS, इसलिए यह समाधान प्रॉक्सी के अंदर आपके अन्य जावा एप्लिकेशन को चलाने के लिए भी लागू किया जा सकता है।


बिदाई संकेत ... ऊपर मेरे उदाहरण का उपयोग करता है http://localhost:58080। इसका कारण यह है कि मैंने अपने रिमोट-एक्सेस क्लाइंट पर WSLCLIENT_PROXY=localhost:58080 का उपयोग करके वास्तविक नेटवर्क प्रॉक्सी से पोर्ट-फ़ॉरवर्डिंग को चलाने के लिए सेट किया है:

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