我在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代理设置之后,问题顺利解决了。