You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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
  • 保存配置
  • 回到自由风格任务,构建步骤选择「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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:00:09