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

Jenkins构建的带依赖Jar包本地解压报错,本地打包无异常

解决Jenkins构建Jar包本地解压权限报错问题

我之前碰到过几乎一模一样的情况,给你几个实际可行的排查和解决方向:

  • Jenkins构建时的权限遗留问题
    Jenkins运行的服务用户(比如Linux下的jenkins用户、Windows下的Local System账户)在打包Jar时,可能给META-INF/maven下的目录或文件设置了本地普通用户无法访问的权限。
    解决办法:

    • 若Jenkins部署在Linux环境,在构建步骤后新增一个执行命令的步骤,运行chmod -R 755 ${project.build.directory}/${project.build.finalName}.jar,确保Jar包本身的权限对普通用户可读;
    • 如果用Maven Assembly插件打包,直接在assembly的descriptor配置文件里统一设置文件和目录权限:
      <fileSets>
        <fileSet>
          <directory>${project.build.outputDirectory}</directory>
          <outputDirectory>/</outputDirectory>
          <fileMode>0644</fileMode>
          <directoryMode>0755</directoryMode>
        </fileSet>
        <!-- 依赖打包的模块也需要添加对应的fileSet权限配置 -->
      </fileSets>
      
  • Jar包传输或构建过程中损坏
    有时候Jenkins构建完成后,Jar包在下载到本地的过程中出现丢包,或者构建日志里存在隐藏的打包警告/错误,导致Jar包本身不完整。
    解决办法:

    • 对比本地Maven打包的Jar和Jenkins下载的Jar的MD5哈希值,若不一致则重新下载Jenkins的Jar包;同时检查Jenkins构建日志里的Maven输出,确认打包过程是否完全成功。
  • Windows长路径限制问题
    虽然你说权限没问题,但Windows默认的260字符路径长度限制,可能会导致META-INF/maven这类深层嵌套目录无法被正常访问,尤其是当解压目录本身路径较长时。
    解决办法:

    • 把Jar包移动到路径更短的目录下解压(比如直接放到C:\temp);
    • 开启Windows的长路径支持:通过组策略启用“启用Win32长路径”,或者修改对应注册表项(优先尝试短路径方案更快捷)。
  • 本地安全软件拦截
    部分杀毒软件或Windows Defender会把Jenkins构建的带依赖胖Jar里的某些文件误判为可疑项,直接阻止了你的访问操作。
    解决办法:

    • 临时关闭杀毒软件尝试解压,如果成功,就把解压目录或Jenkins下载的Jar包加入安全软件的白名单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:17:01