我在Maven上设置了代理,但没有得到任何反应

环境

    • macos 13

 

    maven 3.9.1

症状是指身体不正常的表现。

我在设置文件中写入了代理,但是在构建时,Maven没有经过代理。

请在/opt/homebrew/Cellar/maven/3.9.1/libexec/conf/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
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <proxies>
    <proxy>
      <id>http</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>127.0.0.1</host>
      <port>3341</port>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

执行命令mvn clean package时,无法下载https://github.com/xxx.exe。

造成这种情况的原因是什么?

请注意http。这个协议不是你自身的代理类型,而是你希望代理人为你提供的协议类型。

代理服务的协议通常指的是socks,http和https三种类型。而你想要代理的协议则是你进行网络通信时使用的协议。在大多数情况下,使用mvn时会使用https。这两种协议并不需要完全匹配。

因此,我们需要改变之前的方法。

<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
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <proxies>
    <proxy>
      <id>http</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>127.0.0.1</host>
      <port>3341</port>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
    <proxy>
      <id>https</id>
      <active>true</active>
      <protocol>https</protocol>
      <host>127.0.0.1</host>
      <port>3341</port>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

添加了HTTPS代理设置之后,问题顺利解决了。

广告
将在 10 秒后关闭
bannerAds