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

Jenkins归档多Jar包生成Zip,Copy Artifact插件复制构件报错求助

解决Jenkins Copy Artifact插件从归档Zip复制构件的报错问题

嘿,我碰到过一模一样的问题!你这个错误的核心原因很明确:任务A归档多个Jar包时,Jenkins默认把它们打包成了archive.zip,但任务B里的Copy Artifact插件还在傻乎乎地找名为archive的目录——自然找不到啦。

给你两个实用的解决方案,选哪个看你需求:

方案一:调整任务A的归档配置,直接存Jar文件不打包

这个方案最直接,从根源上避免打包成Zip:

  • 打开任务A的配置页,找到「构建后操作」里的「Archive the artifacts」模块
  • 在「Files to archive」输入框里,直接列出你的4个Jar文件的路径,比如:
    target/service-api.jar
    target/service-core.jar
    target/service-web.jar
    target/service-common.jar
    
    或者用通配符target/*.jar也可以,只要这个通配符匹配到的是单个文件而非目录
  • 注意别勾选「Archive artifacts into a zip file」这类选项(不同Jenkins版本位置可能略有不同)
  • 重新跑一遍任务A的构建,这次归档的Jar会直接存在任务A的构建归档目录里,不会被打包成Zip,任务B再用Copy Artifact就能正常读取了

方案二:在任务B里复制Zip并解压

如果不想动任务A的配置,那就让任务B适配这个Zip文件:

  • 打开任务B的配置,找到「Copy artifacts from another project」这个构建步骤
  • 「Which build」选你需要的版本(比如「Latest successful build」)
  • 「Artifacts to copy」里直接写archive.zip,别再填原来的Jar路径或者目录了
  • 再加一个构建步骤,因为你是Windows环境,用「Execute Windows batch command」或者PowerShell都行,把Zip解压出来:
    用cmd的话:
    tar -xf archive.zip
    
    用PowerShell的话:
    Expand-Archive -Path archive.zip -DestinationPath .
    
  • 解压完成后,你要的4个Jar就会出现在当前目录里了

另外提个小细节:要确保任务B的执行用户有读取任务A构建归档目录的权限,不然就算路径对了也可能报权限错误哦。

内容的提问来源于stack exchange,提问作者david.t_92

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:01:14