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

部署Spring Boot应用时出现Liquibase无效块类型ZipException错误

解决Liquibase 3.5.3 + Spring Boot部署时的ZipException问题

我之前也碰到过类似的Liquibase压缩包相关错误,结合实战经验给你几个靠谱的排查和修复方向:

  • 检查Liquibase依赖包完整性
    大概率是你的liquibase-core-3.5.3.jar本身损坏了。可以试试:

    1. 清理本地Maven/Gradle仓库里的Liquibase相关包,重新触发下载
    2. 手动从官方仓库下载对应版本的jar包替换,确保文件校验和(MD5/SHA256)和官方提供的一致
  • 排查Changelog资源的压缩异常
    如果你的changelog引用了打包在jar里的子配置、SQL文件等资源,要确认这些资源在打包过程中没被错误压缩:

    • 检查Spring Boot的打包配置,确保db/changelog目录下的所有文件没有被二次压缩
    • 解压你的应用jar包,查看BOOT-INF/lib下的Liquibase jar是否能正常打开,以及BOOT-INF/classes里的changelog文件是否完整无乱码
  • 升级Liquibase版本(优先推荐)
    Liquibase 3.5.3是2018年的老版本,这个版本的ServiceLocator在资源访问逻辑上存在已知的压缩相关bug。建议升级到3.8.x或更高的稳定版本,同时注意和你的Spring Boot版本兼容(比如Spring Boot 2.x适配Liquibase 3.8+完全没问题)

  • 确认部署包的传输完整性
    从日志里的APP/20-0推测你可能部署在Cloud Foundry这类云平台,要排除传输过程中jar包损坏的可能:

    • 本地计算应用jar包的校验值,和平台上的文件校验值对比
    • 重新上传一次应用jar包,排除网络传输导致的文件损坏

附你遇到的完整错误栈参考:

27/03/18 12:52:19.538 [APP/20-0] ERR Caused by: liquibase.exception.UnexpectedLiquibaseException: java.util.zip.ZipException: invalid block type
27/03/18 12:52:19.538 [APP/20-0] ERR at liquibase.servicelocator.ServiceLocator.setResourceAccessor(ServiceLocator.java:107)
27/03/18 12:52:19.538 [APP/20-0] ERR at liquibase.servicelocator.ServiceLocator.(ServiceLocator.java:44)……

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:25:36