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.jartarget/*.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的话:
用PowerShell的话:tar -xf archive.zipExpand-Archive -Path archive.zip -DestinationPath . - 解压完成后,你要的4个Jar就会出现在当前目录里了
另外提个小细节:要确保任务B的执行用户有读取任务A构建归档目录的权限,不然就算路径对了也可能报权限错误哦。
内容的提问来源于stack exchange,提问作者david.t_92
相关产品推荐
相关产品推荐

