Linux服务器A无法下载Maven依赖(服务器B正常)请求排查解决
Maven依赖下载卡住问题排查与解决建议
我在Linux服务器A上执行Maven依赖下载时卡住,但另一台Linux虚拟机B可以正常完成下载。卡住时的日志如下:
Downloading from central: https://repo.maven.apache.org/maven2/com/distra/switch/plugins/cartridge-validation/5.0.3-11-1/cartridge-validation-5.0.3-11-1.pom
我已导出以下环境变量:
export MAVAN_HOME="/apps/workspace/tools/apache-maven-3.8.6" export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')" export PATH="${PATH}:/apps/workspace/tools/apache-maven-3.8.6/bin:$JAVA_HOME"
服务器A上执行mvn --version的输出为:
mvn --version Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /apps/apache-maven-3.8.6 Java version: 11.0.16, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el8_6.x86_64 Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "4.18.0-372.19.1.el8_6.x86_64", arch: "amd64", family: "unix"
排查与解决步骤
- 网络连通性验证:在服务器A上执行
curl -v https://repo.maven.apache.org/maven2/com/distra/switch/plugins/cartridge-validation/5.0.3-11-1/cartridge-validation-5.0.3-11-1.pom,确认能否正常获取文件。如果超时或失败,说明服务器A到Maven中央仓库的网络存在故障,需检查防火墙规则、代理配置或网络路由。 - Maven配置对比:对比服务器A和B的
settings.xml文件(通常位于~/.m2/settings.xml或MAVEN_HOME/conf/settings.xml),重点核对代理配置、镜像仓库设置是否一致。若B使用了国内镜像或内部代理,需在A上同步相同配置。 - 环境变量修正:从
mvn --version输出可见,服务器A的实际Maven安装路径是/apps/apache-maven-3.8.6,但导出的MAVEN_HOME为/apps/workspace/tools/apache-maven-3.8.6,路径不匹配。执行echo $MAVEN_HOME确认生效路径,修正环境变量使其与实际安装路径一致,避免配置冲突。 - 本地仓库清理:在服务器A上执行
rm -rf ~/.m2/repository/com/distra/switch/plugins/cartridge-validation/5.0.3-11-1,删除可能损坏的缓存文件后重新尝试下载。 - SSL连接检查:执行
openssl s_client -connect repo.maven.apache.org:443验证服务器A与中央仓库的SSL连接是否正常,排查Java安全策略或证书信任问题。
内容的提问来源于stack exchange,提问作者Coder
相关产品推荐
相关产品推荐

