Maven部署至Azure DevOps Artifact遇连接重置失败求助
问题描述
尝试通过安全连接将Maven项目部署至Azure DevOps Artifact时,出现BUILD FAILURE错误,核心报错为java.net.SocketException: Connection reset。完整mvn deploy日志如下:
[WARNING] Could not transfer metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml from/to charisma (https://.../_packaging/.../maven/v1): Connection reset [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.516 s [INFO] Finished at: ... [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy (default-deploy) on project maven-demo: Failed to retrieve remote metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml: Could not transfer metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml from/to charisma (https://.../_packaging/.../maven/v1): Connection reset -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy (default-deploy) on project maven-demo: Failed to retrieve remote metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml: Could not transfer metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml from/to charisma (https://.../_packaging/.../maven/v1): Connection reset ... ... ... Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to retrieve remote metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml: Could not transfer metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml from/to charisma (https://.../_packaging/.../maven/v1): Connection reset ... ... ... Caused by: org.eclipse.aether.deployment.DeploymentException: Failed to retrieve remote metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml: Could not transfer metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml from/to charisma (https://.../_packaging/.../maven/v1): Connection reset ... ... ... Caused by: org.eclipse.aether.transfer.MetadataTransferException: Could not transfer metadata demo:maven-demo:0.1-SNAPSHOT/maven-metadata.xml from/to charisma (https://.../_packaging/.../maven/v1): Connection reset ... ... ... Caused by: java.net.SocketException: Connection reset
已尝试配置Maven settings和pom文件,但问题仍未解决,请问该如何处理?
解决建议
检查网络与代理配置
- 直接测试Azure DevOps Artifact仓库URL的连通性:执行
curl -v https://.../_packaging/.../maven/v1查看是否能正常建立连接,排查是否存在代理拦截、防火墙阻断的情况。 - 确认Maven settings.xml中的代理配置:如果使用代理,确保代理地址、端口、认证信息正确,且代理允许访问Azure DevOps域名;若无需代理,直接删除settings.xml中的代理节点。
- 直接测试Azure DevOps Artifact仓库URL的连通性:执行
验证Azure DevOps认证信息
- 确认settings.xml中server节点的username和PAT令牌有效性:Azure DevOps需使用个人访问令牌(PAT)作为密码,令牌需具备**Packaging (Read & Write)**权限,且未过期。
- 检查server节点的id是否与pom.xml中distributionManagement里repository的id完全一致(大小写敏感)。
调整Maven传输配置
- 增加Maven超时时间:在pom.xml中为maven-deploy-plugin添加超时参数:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>3.1.1</version> <configuration> <timeout>60000</timeout> <!-- 设置60秒超时 --> </configuration> </plugin> - 禁用HTTP/2协议:在环境变量中设置
MAVEN_OPTS="-Dhttp.client.version=HTTP/1.1",再重新执行mvn deploy。
- 增加Maven超时时间:在pom.xml中为maven-deploy-plugin添加超时参数:
检查Azure DevOps仓库状态
登录Azure DevOps门户,确认目标Artifact仓库是否正常运行,是否设置了IP白名单限制,若有则将本地机器IP加入允许列表。清理Maven本地缓存
删除本地仓库中对应项目的元数据文件(路径一般为~/.m2/repository/demo/maven-demo/0.1-SNAPSHOT/maven-metadata*.xml),然后执行mvn clean deploy -U强制更新元数据。
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

