如何让Maven不使用settings.xml中的第一个代理?通过命令行或系统属性指定使用第二个代理的方法
如何通过命令行或系统属性切换Maven代理
其实Maven确实提供了两种实用的方式来临时切换代理,不用手动修改settings.xml里的active状态,具体如下:
方法一:直接通过系统属性覆盖代理配置
这种方式会直接忽略settings.xml中的代理列表,强制使用你指定的代理参数。针对你配置里的proxy_aws,运行Maven命令时添加以下参数即可:
mvn clean install -Dhttp.proxyHost=app-proxy.aws.acme.fr -Dhttp.proxyPort=80 -Dhttps.proxyHost=app-proxy.aws.acme.fr -Dhttps.proxyPort=80
提示:如果你的代理需要处理HTTPS请求,一定要同时指定
https.proxyHost和https.proxyPort,避免部分依赖拉取失败。如果代理需要用户名密码认证,再额外加上-Dhttp.proxyUser=你的用户名 -Dhttp.proxyPassword=你的密码(HTTPS同理)。
方法二:动态激活指定代理(Maven 3.3.1+支持)
如果你想复用settings.xml里已有的代理配置,只是临时切换激活状态,可以通过maven.proxy.active.<代理ID>这个系统属性来动态修改:
mvn clean install -Dmaven.proxy.active.proxy_gcp=false -Dmaven.proxy.active.proxy_aws=true
这样执行后,Maven会把proxy_gcp设为非激活,同时激活proxy_aws,自然就会使用第二个代理了。
内容的提问来源于stack exchange,提问作者BiAiB
相关产品推荐
相关产品推荐

