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

Jenkins流水线执行mvn test遇路径及权限问题求助

解决Jenkins流水线指定目录执行mvn test的问题

1. 先修复目录权限问题

权限拒绝是因为Jenkins默认以jenkins用户运行,没有目标目录的访问权限,可通过以下操作解决:

  • 修改目标目录的所有者为jenkins用户:
    sudo chown -R jenkins:jenkins /path/to/your/project-directory
    
  • 或者将jenkins用户添加到项目目录所属的用户组:
    sudo usermod -aG your-user-group jenkins
    
  • 修改权限后重启Jenkins生效:
    sudo systemctl restart jenkins
    

2. 两种指定目录执行mvn test的方法

方法一:用dir块切换目录

在流水线中通过dir块切换到pom.xml所在目录后执行命令,示例代码:

pipeline {
    agent any
    stages {
        stage('执行Maven测试') {
            steps {
                // 替换为你的pom.xml所在的绝对路径或相对工作区的路径
                dir('/path/to/your/project-directory') {
                    sh 'mvn test'
                }
            }
        }
    }
}

方法二:直接指定pom文件路径(无需切换目录)

使用Maven的-f参数直接指定pom.xml的绝对路径,绕开目录切换的权限问题,示例代码:

pipeline {
    agent any
    stages {
        stage('执行Maven测试') {
            steps {
                sh 'mvn -f /path/to/your/project-directory/pom.xml test'
            }
        }
    }
}

3. 额外检查:确认代码已拉取到工作区

如果项目代码从版本库拉取,确保流水线包含代码拉取步骤,比如Git:

pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                git url: '你的Git仓库地址', branch: '目标分支'
            }
        }
        stage('执行Maven测试') {
            steps {
                // 若拉取后的pom在工作区子目录(比如env),可直接指定该子目录
                dir('env') {
                    sh 'mvn test'
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者AAdil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:42:42