Maven版本插件不遵守代理设置

时间:2019-07-15 19:31:05

标签: maven proxy

我正在尝试通过Maven版本插件更新我的依赖项,但由于它没有通过我的代理,因此无法这样做。

mvn versions:update-properties

我的防火墙日志显示它试图直接连接到Internet时正在断开端口443上的连接;但是,我在〜/ .m2 / settings.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>
                        <host>${HOSTNAME_GOES_HERE}</host>
                        <port>${PORT_GOES_HERE}</port>
                        <active>true</active>
                </proxy>
        </proxies>

是否可以在不更改防火墙规则的情况下使其正常工作?

谢谢

沃尔特

1 个答案:

答案 0 :(得分:1)

似乎 versions-maven-plugin 在代理设置中使用的协议标签有误。在我将协议标记更改为 https 后,versions-maven-plugin 按预期使用了我的代理服务器:

<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>
                        <host>${HOSTNAME_GOES_HERE}</host>
                        <port>${PORT_GOES_HERE}</port>
                        <protocol>https</protocol>
                        <active>true</active>
                </proxy>
        </proxies>
</settings>

这确实符合以下 Github 问题:https://github.com/mojohaus/versions-maven-plugin/issues/421

然而,这并不反映 Maven 预期的用法。此答案表明协议标记适用于 proxy-server 而不是 target-url 的协议:https://stackoverflow.com/a/52508940/5945416

Maven 对我来说工作得非常好,协议标签设置为 https 而不是 http 并且版本插件在我切换回 http 后立即出现问题,因此我将保留它。

测试:

  • Maven:3.8.1
  • versions-maven-plugin: 2.8.1