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

2022-09-01 02:07:06

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

我似乎无法告诉maven使用这两种协议。在我看来,只有一个活动代理才有可能,因为首先定义了哪个活动代理,而随后的“活动”代理定义将被忽略。这是我的:settings.xmlsettings.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 中配置代理?我知道我可以通过将Java系统属性传递给maven调用来解决此问题,例如:HTTPHTTPSsettings.xml

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

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

MNG-2305MNG-4394等Maven错误表明这个问题已经解决,但我不相信。

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


答案 1

Maven proxy from settings.xml 同时用于 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>

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


答案 2

更新2022-01:可以在此处找到当前技术堆栈(Eclipse 4.17 / 2020-09)的最新答案/解决方案(旧:4.6 / 2017)

的工作原理没有额外的...<id>httpsproxy</id>...条目(如@Krzysztof克拉松所提到的)和它(如提问者所述)。我们的问题是,Eclipse->Maven->User Settings->[x] Update Settings显然根本无法正常工作,要测试某些事情必须进行检查(例如)。最重要的是:Eclipse->Maven->[x] Download repository index updates on startupMaven Repositories View->Global Repositories->central->Update Index

Eclipse 必须在每次设置后重新启动.xml更新!:-/

我想这是一个错误或重新加载/缓存问题。我们成功地测试了它

  • 开普勒(4.3)和氖(4.6)
  • 及其嵌入式 Maven 版本 (3.2.1 / 3.3.9) 以及外部 3.3.3
  • 与 和 网址http://https://

推荐