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

如何在Jenkins中使用Groovy读取仓库内MANIFEST.MF文件内容

Jenkins读取MANIFEST.MF文件报错解决方案

错误根因

  • 代码存在拼写错误:两处路径属性均写错,分别将path写为Paht、paht,导致readFile接收的路径参数完全无效
  • 未提前拉取代码:findFiles基于Jenkins任务当前工作空间查找文件,若未执行checkout步骤拉取代码库内容,自然找不到目标文件
  • 匹配规则不匹配场景:当前glob规则只能匹配工作空间下解压后的物理MANIFEST.MF文件,若目标文件在jar/war等压缩包内,无法被直接匹配到
  • 权限不足:Jenkins任务执行用户对目标文件没有读取权限,也会抛出找不到文件的报错

修复后代码

stage('Read File'){
    steps{
        // 先拉取代码库内容到当前工作空间
        checkout scm
        script{
            def baseDir = "**/MANIFEST.MF"
            def dateien = findFiles(glob: baseDir)
            echo "匹配到的文件数量:${dateien.size()}"
            // 空列表校验,避免无意义的后续执行
            if(dateien.size() == 0){
                error "未匹配到任何MANIFEST.MF文件,请检查代码库结构与匹配规则"
            }
            dateien.each{
                echo "File: ${it.name}"
                echo "Path: ${it.path}"
                def content = readFile(file: it.path)
                println(content)
            }
        }
    }
}

额外排查建议

  • 若需要读取压缩包内的MANIFEST.MF,需先使用unzip等命令解压对应压缩包后再执行查找
  • 排查阶段可在拉取代码后增加sh 'find . -name MANIFEST.MF'(Linux节点)或bat 'dir /s /b MANIFEST.MF'(Windows节点)步骤,直接打印工作空间内所有符合名称的文件路径,确认匹配规则是否正确
  • 确认Jenkins执行用户对工作空间下的文件有读取权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:54:03