如何在 Maven 的 settings.xml 中为 HTTP 和 HTTPS 配置代理服务器?

新手上路,请多包涵

我在代理服务器后面使用 Maven 3.1.1。同一个代理处理 HTTPHTTPS 流量。

我似乎无法告诉 Maven 使用 settings.xml 使用这两种协议。在我看来,只有一个活动代理是可能的,因为首先定义的活动代理将被使用,随后的“活动”代理定义将被忽略。这是我的 settings.xml

 <proxies>
    <proxy>
        <id>myhttpproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>192.168.1.2</host>
        <port>3128</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>
    <proxy>
        <id>myhttpsproxy</id>
        <active>true</active>
        <protocol>https</protocol>
        <host>192.168.1.2</host>
        <port>3128</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>
</proxies>

是否可以在 Maven 的 settings.xml --- 中为 HTTPHTTPS 配置代理?我知道我可以通过将 Java 系统属性传递给 Maven 调用来解决这个问题,例如:

 -Dhttps.proxyHost=192.168.1.2 -Dhttps.proxyPort=3128

但肯定这必须可以从 settings.xml 内部实现?

提出的 Maven 错误(如 MNG-2305MNG-4394 )表明此问题已解决,但我不相信。

或者,是否有一个我可以在本地运行并可以指向 maven 的“代理代理”? “代理代理”将相应地路由 http/https。即便如此,我仍然需要在 settings.xml 中定义两个活动代理定义,以便 Maven 引导这两种类型的流量。

原文由 Stephen Hartley 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 896
1 个回答

来自 settings.xml 的 Maven 代理同时用于 http 和 https,所以你只需要定义一个代理服务器,它将用于两者,你只需要留下一个 proxy 标签,就像这样:

 <proxies>
    <proxy>
        <id>myhttpproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>192.168.1.2</host>
        <port>3128</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>
</proxies>

上面的协议是代理服务器的协议,不是被代理的请求。

原文由 Krzysztof Krasoń 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题