環境
- 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
をすると、Downloading: https://github.com/xxx.exe
は行き詰まった。
原因
<protocol>http</protocol>
に注目してください。このプロトコルは、あなたのプロキシ自身の種類じゃなくて、プロキシさんに代理してもらいたいプロトカルの種類です。
プロキシ自身のプロトカルは、一般的に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
プロキシの項目も追加して、無事解決いたしました。