我想分享我通过代理使用maven的经验.
您很可能会遇到异常和消息,例如:
repository metadata for: 'org.apache.maven.plugins' could not be retrieved from repository: central due to an error: Error transferring file: Connection refused: connect
要么
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-clean- plugin:2.5: Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5
如何配置Maven使用代理服务器?
我试图将 Maven 配置为在访问特定存储库时使用袜子代理,但不将其用于 Maven 中央存储库。
我最初习惯于export MAVEN_OPTS="-DsocksProxyHost=<proxyHost> -DsocksProxyPort=<proxyPort>"设置代理,但当Malformed reply from SOCKS server它尝试从 repo.maven.apache.org/maven2 下载依赖项时就会得到。
我还尝试将以下内容添加到 settings.xml,而不是$MAVEN_OPTS:
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host><proxyHost></host>
<port><proxyPort></port>
<nonProxyHosts>repo.maven.apache.org</nonProxyHosts>
</proxy>
</proxies>
Run Code Online (Sandbox Code Playgroud)
并且还以 SOCKS 作为协议。但是,这会导致请求超时,因为它无法到达特定存储库。但是,它确实到达了 repo.maven.apache.org/maven2,尽管速度很慢,因为它首先检查指定的存储库。
有没有办法将两者结合起来,并为我在 settings.xml 中指定的存储库提供 SOCKS 代理,而没有为 repo.maven.apache.org 提供代理?