【问题标题】:Maven behind a auto-generated proxy自动生成代理背后的 Maven
【发布时间】:2014-06-25 16:25:53
【问题描述】:

我支持自动生成的代理。

我已将我的 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>

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

错误:

WARNING: NTLM authentication error: Credentials cannot be used for NTLM authenti
cation: org.apache.maven.wagon.providers.http.httpclient.auth.UsernamePasswordCr
edentials

如何获取我的 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.

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

【问题讨论】:

  • , but it still doesn't work. 是什么意思?错误信息?某种输出?

标签: maven proxy


【解决方案1】:

凭证不是解决方案!

您的问题的解决方案是cntlm

接下来的步骤

第一步 -->

永久消除这些 NTLM 代理问题的步骤。

  1. 下载安装cntlm
  2. 在 cntlm 安装目录中编辑 cntlm.ini 文件并确保您的网络有代理,即“代理 NTLMPROXYHOST:PORT”,例如代理 192.168.0.1:8080(这是您访问互联网的网络代理!)
  3. 不要忘记将您的 Windows 身份验证凭据放入 cntlm.ini 文件中,只需输入您的 Windows 用户名、域名、密码即可。
  4. 创建名为 CYGWIN 的环境变量(系统变量),其值为“nodosfilewarning”(不带引号),如果不这样做,您甚至无法启动 cntlm!其次,创建两个名为http_proxy 的环境变量,其值为“http://localhost:3128”和https_proxy,其值为“http://localhost:3128”。
  5. 进入开始菜单并点击cntlm文件夹,然后点击“start cntlm authentication proxy”(不要忘记制作“start cntlm authentication proxy”快捷方式启动程序,否则重启后您将无法访问互联网!!或者您需要每次重新启动时手动启动 CNTLM 代理!!)。
  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>

如果有问题,请给我反馈!

【讨论】:

  • Ctnlm 在大多数情况下都很好用。但它偶尔会挂起和崩溃(Windows 7),并且似乎不再更新。一个替代方案会很棒。
  • 注意:如果您使用 Cntlm,请不要在 maven 代理设置中将 留空。它行不通。而是像这个答案一样完全删除这些行。
  • 如果您的代理需要身份验证,cntlm.ini 中的配置会变得很棘手,我建议您按照说明进行操作 here。它节省了我的时间,因为我没有包含选项 Auth
【解决方案2】:

我在codepen.io 上找到了一个可行的解决方案。您只需将 wagon-http-lightweight jar 放入 Maven lib/ext 文件夹即可。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
  • 2012-07-12
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多