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

Jenkins Pipeline执行mvn test时数据驱动框架构建失败

Jenkins Pipeline执行mvn test报xlsx文件访问拒绝问题解决方案

根因定位

报错触发点是maven-resources-plugin:3.2.0执行测试资源拷贝阶段,无法访问工作空间路径下的webFormstestData - Copy (2).xlsx文件,相同代码在普通Maven任务可正常运行,说明问题和Pipeline的运行上下文直接相关,常见诱因如下:

  • 测试数据文件名包含空格、括号类特殊字符,Pipeline执行bat/shell步骤时路径未正确转义,被插件截断后触发访问拒绝的误报
  • 文件被后台进程锁死:上一次构建残留的Excel进程、Jenkins进程未释放target目录下该xlsx文件的句柄,拷贝写入操作被系统拦截
  • 运行账号权限不匹配:普通Maven任务默认使用当前登录Windows的用户账号运行,若Jenkins以系统服务模式启动,Pipeline默认使用低权限服务账号运行,对工作空间下特殊路径的文件无读写权限
  • 构建残留脏文件:多次构建失败后target目录下的测试资源目录被标记为只读,Pipeline未配置自动清理旧产物的逻辑,写入操作被拒绝

修复步骤

  • 第一步先修正文件名:将webFormstestData - Copy (2).xlsx重命名为无空格、无特殊符号的格式,例如webFormstestData_copy2.xlsx,同步修改项目代码中读取该测试数据的路径配置,从根源避免路径解析异常。
  • 第二步在Pipeline中增加构建前清理逻辑:在执行mvn test命令前,先执行命令清理占用进程和旧构建产物,Windows环境参考命令如下:
    :: 强制关闭后台残留的Excel进程,解除文件占用
    taskkill /F /IM EXCEL.EXE /T
    :: 强制删除target目录下的所有旧构建产物
    rd /s/q target
    
    也可以直接安装Workspace Cleanup插件,配置构建前自动清空整个工作空间后再拉取代码构建,避免残留文件干扰。
  • 第三步校验Jenkins服务运行权限:打开Windows服务列表,找到Jenkins服务,进入「属性-登录」页,将服务运行账号修改为本地有全量磁盘读写权限的个人账号,保存后重启Jenkins服务再重试构建。
  • 第四步修正pom.xml中maven-resources-plugin配置:显式声明xlsx这类二进制文件不做文本过滤,避免插件处理文件时损坏内容触发异常,配置参考:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
            <encoding>UTF-8</encoding>
            <nonFilteredFileExtensions>
                <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
                <nonFilteredFileExtension>xls</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
        </configuration>
    </plugin>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:18:49