Linux安装Maven本质是解压+配环境变量,核心三步:确认JDK 8+已安装并正确配置JAVA_HOME;下载官方二进制包(如3.9.12)并解压至/opt等规范路径;配置MAVEN_HOME与PATH后source生效;最后修改~/.m2/settings.xml配置阿里云镜像及本地仓库路径。

Linux上装Maven不是“安装”,是解压+配环境变量,核心就三步:确认JDK已就位、下载解压二进制包、把mvn命令加进PATH。跳过任一环节都会导致mvn: command not found或Unsupported Java version报错。
确认JDK已正确安装并生效
Maven 3.8+ 要求 JDK 8 或更高版本,且必须配置JAVA_HOME——这不是可选项,是硬性前提。很多用户卡在mvn -v报错“Java version is not supported”,其实问题出在Java本身没配好。
- 运行
java -version和which java,确认输出的是你期望的JDK路径(比如/usr/lib/jvm/java-17-openjdk-amd64/bin/java) - 检查
JAVA_HOME是否指向JDK根目录(不是jre子目录),例如:echo $JAVA_HOME应输出/usr/lib/jvm/java-17-openjdk-amd64 - 如果
JAVA_HOME为空或错误,先在/etc/profile或~/.bashrc里补上:export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64,再执行source重载
下载解压Maven二进制包(别用包管理器)
系统包管理器(如apt install maven)装的通常是旧版(Ubuntu 24.04 默认还是 3.6.x),且settings.xml位置不标准,后续改镜像、换本地仓库会踩坑。直接下官方二进制包最可控。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 选稳定版:截至2026年9月,推荐用
apache-maven-3.9.12-bin.tar.gz(官网最新LTS级版本) - 下载命令(国内建议用华为源加速):
wget https://repo.huaweicloud.com/apache/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz - 解压到规范路径(避免空格/中文):
sudo tar -zxvf apache-maven-3.9.12-bin.tar.gz -C /opt/→ 得到/opt/apache-maven-3.9.12
配置MAVEN_HOME和PATH(全局 or 当前用户?)
配错位置会导致root能用、普通用户不能用,或者重启后失效。关键看你是单用户开发还是多用户服务器环境。
- 单用户开发(推荐):写入
~/.bashrc或~/.zshrc(根据shell类型):export MAVEN_HOME=/opt/apache-maven-3.9.12export PATH=$PATH:$MAVEN_HOME/bin - 多用户/系统级部署:写入
/etc/profile.d/maven.sh(新建文件,非/etc/profile末尾追加),并确保有执行权限:sudo chmod +x /etc/profile.d/maven.sh - 无论哪种方式,执行
source ~/.bashrc(或对应文件)立即生效,不要靠新开终端“碰运气”
验证并快速初始化settings.xml(绕过默认中央仓库慢)
mvn -v能显示版本只是第一步;真正要用起来,必须改conf/settings.xml,否则第一次mvn compile会卡死在下载依赖上。
- 先复制模板:
cp /opt/apache-maven-3.9.12/conf/settings.xml ~/.m2/settings.xml(用户级配置优先于全局) - 编辑
~/.m2/settings.xml,在<mirrors></mirrors>标签内加阿里云镜像(2026年仍稳定):<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>Aliyun Maven</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
- 顺手改本地仓库路径(避免占满
/root或/home):<localrepository>/data/m2repo</localrepository>,然后mkdir -p /data/m2repo
最关键的细节往往藏在路径和权限里:解压目录不能是/tmp这种临时路径,settings.xml必须放在~/.m2/(不是conf/下),而/data/m2repo这类自定义仓库目录得确保当前用户有读写权限——这些点不检查,mvn命令能跑,但一拉依赖就静默失败。

















