Jenkins自由风格任务中二进制安装Maven提示‘mvn: command not found’问题
解决Jenkins任务中二进制安装Maven提示‘mvn: command not found’的问题
问题原因
你在终端能正常执行mvn,是因为终端属于登录交互式shell,会加载~/.bash_profile里的环境变量;但Jenkins执行任务时用的是非登录非交互式shell,不会加载这个文件,所以Maven的路径没被Jenkins识别到。而yum安装的Maven会把路径写入全局配置(比如/etc/profile或/usr/bin),因此Jenkins能正常找到。
解决方法
方法1:在Jenkins全局工具配置中指定Maven(推荐)
- 登录Jenkins,进入Manage Jenkins → Global Tool Configuration
- 找到Maven区域,点击Add Maven
- 取消勾选「Install automatically」,填写:
- Name:自定义名称(比如
Maven 3.8.7) - MAVEN_HOME:
/opt/maven
- Name:自定义名称(比如
- 保存配置
- 回到自由风格任务,构建步骤选择「Invoke top-level Maven targets」,在「Maven Version」下拉框选择刚才配置的Maven,Jenkins会直接调用指定路径的Maven,无需依赖系统PATH。
方法2:给Jenkins用户配置环境变量
- Jenkins默认以
jenkins用户运行,切换到该用户并编辑环境配置文件:sudo su - jenkins vi ~/.bashrc - 添加以下内容:
export M2_HOME=/opt/maven export PATH=$M2_HOME/bin:$PATH - 保存退出后,执行
source ~/.bashrc使配置生效,或重启Jenkins服务:sudo systemctl restart jenkins
方法3:在任务中直接使用Maven绝对路径
如果只是临时解决,在构建的shell命令里直接写Maven的绝对路径:
/opt/maven/bin/mvn clean install
方法4:配置Jenkins全局环境变量
- 进入Manage Jenkins → Configure System
- 找到Global properties,勾选「Environment variables」
- 添加变量:
- 变量名:
PATH - 变量值:
/opt/maven/bin:$PATH
- 变量名:
- 保存后,Jenkins所有任务都会继承该PATH配置,即可识别
mvn命令。
内容的提问来源于stack exchange,提问作者PARAM
相关产品推荐
相关产品推荐

