Maven在自动生成的代理后面

Sor*_*adu 10 proxy maven

我是一个自动生成的代理.

我已经将settings.xml配置为使用此代理,但它仍然无效.Android SDK与我设置的相同代理工作正常.

<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>
        <id>optional</id>
        <active>true</active>
        <protocol>http</protocol>
        <username></username>
        <password></password>
        <host>MY-PROXY-HOST-HERE</host>
        <port>8080</port>
        <nonProxyHosts></nonProxyHosts>
    </proxy>
  </proxies>
</settings>
Run Code Online (Sandbox Code Playgroud)

我还能做些什么让maven工作?

错误:

WARNING: NTLM authentication error: Credentials cannot be used for NTLM authenti
cation: org.apache.maven.wagon.providers.http.httpclient.auth.UsernamePasswordCr
edentials
Run Code Online (Sandbox Code Playgroud)

如何获得我的NTLM身份验证信令?


Original error: Could not transfer metadata org.codehaus.mojo/maven-metadata.xml from/to central (http://repo.maven.apache.org/maven2): Not authorized by proxy , ReasonPhrase:Proxy Authorization Required.
Run Code Online (Sandbox Code Playgroud)

这是输出消息.在我的wpad.dat(我从那里获取代理数据),我没有指定的用户名和密码...

pos*_*rux 19

凭证不是解决方案!

解决您的问题的方法是cntlm

要走的路

第一步 - >

永久摆脱这些NTLM代理问题的步骤.

  1. 下载并安装cntlm
  2. 编辑cntlm安装目录中的cntlm.ini文件并确保您的网络有代理,即"Proxy NTLMPROXYHOST:PORT",例如代理192.168.0.1:8080(这是您从中访问Internet的网络代理!)
  3. 不要忘记在cntlm.ini文件中输入您的Windows身份验证凭据,只需输入您的Windows用户名,域名和密码即可.
  4. 创建名为CYGWIN的环境变量(系统变量),其值为"nodosfilewarning"(不含引号),如果不这样做,您甚至无法启动cntlm!其次,http_proxy使用值" http://localhost:3128"和https_proxy值" http://localhost:3128" 命名两个环境变量.
  5. 转到开始菜单,然后单击cntlm文件夹,然后单击"启动cntlm身份验证代理"(不要忘记"启动cntlm身份验证代理"快速启动程序,否则在重新启动后无法访问互联网!!或者您需要手动启动CNTLM PROXY每次你重新启动!!).
  6. 打开Internet Explorer - >工具 - > Internet选项 - >连接 - > LAN设置
  7. 勾选"代理服务器"标题下的复选框.
  8. 将localhost或127.0.0.1放在"地址"文本框中,并将3128放在"端口"文本框下(是的!您不再需要网络代理,因为我们已经保存在cntlm.ini中).
  9. 单击确定然后再次确定然后关闭IE.

而已!!现在你永远不会看到与NTLM代理身份验证相关的错误失败或其他任何事情甚至不在sbt或maven!CNTLM非常快,因为它是用C开发的!

第二步 - >

启动cntlm身份验证代理服务器

确保您的settings.xml文件的代理看起来像这样.

  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |-->
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>127.0.0.1</host>
      <port>3128</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
  </proxies>
Run Code Online (Sandbox Code Playgroud)

如果某些东西不起作用,请给我反馈意见!

  • Ctnlm 在大多数情况下都表现良好。但它偶尔会挂起和崩溃(Windows 7),并且似乎不再更新。如果有一个替代方案那就太好了。 (2认同)
  • 注意:如果您使用Cntlm,请不要在maven代理设置中留下空白<username> </ username>和<password> </ password>.它不会起作用.而是完全像在这个答案中删除那些行. (2认同)

xue*_*eng 6

我在codepen.io上找到了一个有效的解决方案.你只需将一个wagon-http-lightweightjar放入Maven lib/ext文件夹即可.