应优先手动安装apache maven而非系统包管理器版本;推荐使用sdkman!管理多版本(如3.9.6),或手动解压配置maven_home与path,并必须配置阿里云镜像源以避免依赖拉取失败。

别装系统包管理器里的 mvn,它大概率不是你要的 Apache Maven,要么版本太旧,要么压根不提供 mvn 命令。
先确认系统有没有真·Maven
直接运行:mvn -v。如果报 command not found,说明没装;如果输出了版本号,再看是不是低于 3.8.0(比如 3.6.3 或 3.5.4)。低于这个版本,遇到带 <dependencymanagement></dependencymanagement> 的 BOM 导入、mvn compile 时解析失败、甚至 Unknown lifecycle phase "package" 都很常见。
顺手查下路径:which mvn,再看看它是不是来自 apt install maven(Ubuntu/Debian)或 dnf install maven(RHEL/CentOS)——前者常捆绑 OpenJDK 11,后者装的是 maven-local,只给 RPM 构建用,不是你写 Java 项目要的那个。
推荐用 SDKMAN! 管理多版本 Maven
这是最贴近真实开发流的方式:能共存 3.8.8、3.9.6、4.0.0-alpha-5,一键切换,避免老项目和新项目互相踩脚。
- 执行安装脚本:
curl -s "https://get.sdkman.io" | bash - 初始化环境:
source "$HOME/.sdkman/bin/sdkman-init.sh" - 列出可用版本:
sdk list maven,注意带*的是推荐稳定版(如3.9.6) - 安装指定版本:
sdk install maven 3.9.6 - 验证:
mvn -v应显示Apache Maven 3.9.6和匹配的 JDK 版本 - 临时切回旧版调试老项目?用
sdk use maven 3.8.8,关掉终端就自动恢复
手动解压安装(离线/内网/权限受限场景)
关键不是“解压完就能用”,而是 MAVEN_HOME 路径、PATH 注入、文件权限三者必须对齐,否则会报 JAVA_HOME not set 或 tools.jar not found(哪怕 java -version 正常)。
- 下载官方二进制包(别下
-src或.zip):wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz - 解压并软链到统一路径:
sudo tar -xzf apache-maven-3.9.6-bin.tar.gz -C /opt/ && sudo ln -sf /opt/apache-maven-3.9.6 /opt/maven - 写系统级环境配置:
sudo vi /etc/profile.d/maven.sh,内容仅两行:export MAVEN_HOME=/opt/mavenexport PATH=$MAVEN_HOME/bin:$PATH - 赋权并生效:
sudo chmod +x /etc/profile.d/maven.sh && source /etc/profile.d/maven.sh - 验证:
mvn -v输出中Maven home必须是/opt/maven
必须配阿里云镜像源,否则依赖拉取大概率失败
默认中央仓库在海外,国内直连常触发超时、连接重置、Could not resolve dependencies。改 settings.xml 是唯一可靠方式。
- 定位文件:
ls $MAVEN_HOME/conf/settings.xml - 备份原文件:
cp $MAVEN_HOME/conf/settings.xml $MAVEN_HOME/conf/settings.xml.bak - 在
<mirrors></mirrors>标签下添加:<mirror><br><id>aliyunmaven</id><br><mirrorof>*</mirrorof><br><name>Aliyun Maven</name><br><url>https://maven.aliyun.com/repository/public</url><br></mirror>
- 保存后,下次运行
mvn compile或mvn install就走阿里云了,速度提升明显
最容易被忽略的是:手动安装后忘记改 settings.xml,或者改了但没确认 $MAVEN_HOME 指向正确路径——mvn 会静默 fallback 到用户家目录下的 ~/.m2/settings.xml,导致镜像配置不生效,问题难排查。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











